TensorFlowとPythonを使ってIlliadデータセットをダウンロード・探索する方法
TensorFlowは、Googleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて機械学習アルゴリズムやディープラーニングアプリケーションなどを実装するために広く使われています。研究用途から本番環境まで、幅広い場面で活用されています。
TensorFlowのインストール
Windows環境では、以下のコマンドで「tensorflow」パッケージをインストールできます。
pip install tensorflow
テンソルとは何か
テンソル(Tensor)は、TensorFlowで扱われる基本的なデータ構造です。データフロー図(Data Flow Graph)と呼ばれる計算グラフの中で、ノード同士をつなぐエッジの役割を担います。テンソルは、多次元配列あるいはリストと考えることができます。
テンソルは、主に以下の3つの属性によって特徴づけられます。
ランク(Rank) − テンソルの次元数を表します。テンソルの階数とも呼ばれ、定義されたテンソルが持つ次元の数を意味します。
型(Type) − テンソルの各要素に関連付けられたデータ型を示します。1次元、2次元、さらにはn次元のテンソルを扱うことができます。
形状(Shape) − テンソルが持つ行数と列数の組み合わせを表します。
Illiadデータセットについて
ここでは、Illiad(イリアス)のデータセットを使用します。このデータセットには、William Cowper、Edward(Derby伯)、Samuel Butlerによる3つの英訳版のテキストデータが含まれています。目的は、1行のテキストが与えられたときに、それがどの翻訳者によるものかを識別できるようモデルを訓練することです。
使用するテキストファイルはすでに前処理が施されており、文書のヘッダー・フッター、行番号、章タイトルなどが削除されています。
実行環境:Google Colaboratory
以下のコードは、Google Colaboratory上で実行しています。Google Colab(Colaboratory)を利用すると、ブラウザ上でPythonコードを実行でき、面倒な環境設定は一切不要です。さらに、GPU(Graphics Processing Unit)へ無料でアクセスできる点も大きな魅力です。ColaboratoryはJupyter Notebookをベースに構築されています。
コード例
print("Loading the Illiad dataset")
DIRECTORY_URL = 'https://storage.googleapis.com/download.tensorflow.org/data/illiad/'
FILE_NAMES = ['cowper.txt', 'derby.txt', 'butler.txt']
print("Iterating through the name of the files")
for name in FILE_NAMES:
text_dir = utils.get_file(name, origin=DIRECTORY_URL + name)
parent_dir = pathlib.Path(text_dir).parent
print("The list of files in the directory")
print(list(parent_dir.iterdir()))コード出典:https://www.tensorflow.org/tutorials/load_data/text
出力結果
Loading the Illiad dataset
Iterating through the name of the files
Downloading data from
https://storage.googleapis.com/download.tensorflow.org/data/illiad/cowper.txt
819200/815980 [==============================] - 0s 0us/step
Downloading data from
https://storage.googleapis.com/download.tensorflow.org/data/illiad/derby.txt
811008/809730 [==============================] - 0s 0us/step
Downloading data from
https://storage.googleapis.com/download.tensorflow.org/data/illiad/butler.txt
811008/807992 [==============================] - 0s 0us/step
The list of files in the directory
[PosixPath('/root/.keras/datasets/derby.txt'), PosixPath('/root/.keras/datasets/cowper.txt'),
PosixPath('/root/.keras/datasets/butler.txt')]
[ ]解説
「tf.data.TextLineDataset」は、テキストファイルからサンプル(行単位のデータ)を読み込むために使用されるAPIです。
「tf.text」は、読み込んだデータを前処理するために使用されます。
まず最初のステップとして、データセットをダウンロードし、その内容を探索・確認します。
-
TensorFlowとPythonを使ってデータセットを視覚化する方法
ここでは、花のデータセットを使用します。このデータセットは、Googleが提供するAPI経由でダウンロードでき、「get_file」メソッドにAPIのURLを引数として渡すことで、データを開発環境に取得できます。 ダウンロードしたデータは「matplotlib」ライブラリを使って視覚化できます。「imshow」メソッドを使用すると、コンソール上に画像を表示することが可能です。 TensorFlowとKerasの連携 関連記事: TensorFlowとは何か?KerasはどのようにTensorFlowと連携してニューラルネットワークを構築するのか? 本記事ではKeras Sequential
-
TensorFlowとPythonを使って花のデータセットを可視化する方法
花のデータセットは、matplotlibライブラリを使用することで簡単に可視化できます。imshowメソッドを使うと、画像をコンソール上に表示でき、データセット全体を反復処理しながら最初の数枚の画像だけを出力するといったことも可能です。使用するデータセットについて本記事では、数千枚の花の画像を含む「flowers(花)」データセットを使用します。このデータセットには5つのサブディレクトリが含まれており、各クラス(花の種類)ごとに1つのサブディレクトリが割り当てられています。なお、以下のコードはGoogle Colaboratoryで実行することを想定しています。Google Colab(Col