【Python】TensorFlowでデータセットを反復処理してサンプルデータを表示する方法
TensorFlowとは
TensorFlowは、Googleが提供している機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムの実装やディープラーニングアプリケーションの開発など、幅広い用途に活用されています。研究用途から本番環境での運用まで対応しており、複雑な数値計算を高速に処理するための最適化技術が組み込まれています。
その理由の一つがNumPyとの連携です。TensorFlowは多次元配列を基盤としており、この多次元配列は「テンソル」と呼ばれます。フレームワークは深層ニューラルネットワークの構築をサポートし、高い拡張性を備えているほか、多くの人気データセットが同梱されています。GPUによる演算を利用でき、リソース管理も自動化されるため、開発者はモデル構築に集中できます。さらに多数の機械学習ライブラリが付属し、ドキュメントも充実しています。深層ニューラルネットワークモデルの実行や学習、データセットの特徴を予測するアプリケーションの作成まで、一連の流れをカバーできるのが大きな強みです。
TensorFlowのインストール
Windows環境では、以下のコマンドで「tensorflow」パッケージをインストールできます。
pip install tensorflow
テンソルの基本
テンソルはTensorFlowにおける基本的なデータ構造で、データフローグラフ(Data Flow Graph)と呼ばれる計算グラフのエッジ(辺)をつなぐ役割を担います。テンソルは多次元配列またはリストに相当し、主に次の3つの属性で識別されます。
ランク(Rank):テンソルの次元数を表します。テンソルの階数、つまり定義された次元の数と考えることができます。
型(Type):テンソルの各要素に関連付けられたデータ型を表します。1次元・2次元・n次元のいずれのテンソルにも対応します。
形状(Shape):行数と列数の組み合わせで構成されるテンソルのサイズを表します。
実行環境について
本記事のコードはGoogle Colaboratory(Colab)で実行しています。Google Colabを使うと、ブラウザ上でPythonコードを実行でき、事前の環境設定は不要です。GPU(Graphics Processing Unit)への無料アクセスも提供されており、Jupyter Notebookをベースに構築されています。
コード例:データセットの反復処理と表示
print("Iterating through the training data")
for i, label in enumerate(raw_train_ds.class_names):
print("Label", i, "maps to", label)
print("The training parameters have been defined")
raw_val_ds = preprocessing.text_dataset_from_directory(
train_dir,
batch_size=batch_size,
validation_split=0.25,
subset='validation',
seed=seed)
print("The test dataset is being prepared")
test_dir = dataset_dir/'test'
raw_test_ds = preprocessing.text_dataset_from_directory(
test_dir, batch_size=batch_size)コード出典:https://www.tensorflow.org/tutorials/load_data/text
出力結果
Iterating through the training data Label 0 maps to csharp Label 1 maps to java Label 2 maps to javascript Label 3 maps to python The training parameters have been defined Found 8000 files belonging to 4 classes. Using 2000 files for validation. The test dataset is being prepared Found 8000 files belonging to 4 classes.
コードの解説
まず、訓練用データセットを反復処理します。
enumerate()を使うことで、各クラス名に対応するインデックス(ラベル番号)を確認できます。訓練データ・テストデータ・検証データそれぞれのファイル数がコンソールに出力され、データ全体の内訳を把握できます。
データの前処理には
text_dataset_from_directoryユーティリティを使用しています。ディレクトリ構造から自動的にテキストデータを読み込み、バッチ化されたデータセットを生成します。検証データでは
validation_split=0.25により全データの25%が検証用に割り当てられ、seedを指定することで分割の再現性が保証されます。
-
TensorFlowとPythonを使って花のデータセットを可視化する方法
花のデータセットは、matplotlibライブラリを使用することで簡単に可視化できます。imshowメソッドを使うと、画像をコンソール上に表示でき、データセット全体を反復処理しながら最初の数枚の画像だけを出力するといったことも可能です。使用するデータセットについて本記事では、数千枚の花の画像を含む「flowers(花)」データセットを使用します。このデータセットには5つのサブディレクトリが含まれており、各クラス(花の種類)ごとに1つのサブディレクトリが割り当てられています。なお、以下のコードはGoogle Colaboratoryで実行することを想定しています。Google Colab(Col
-
【入門】PythonとTensorFlowでテンソルを作成し、メッセージを表示する方法
TensorFlowはGoogleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、アルゴリズムの実装やディープラーニングアプリケーションの開発など、幅広い用途に活用できます。研究目的から本番環境での運用まで対応しており、複雑な数値計算を高速に実行するための最適化技術も備えています。TensorFlowの特徴TensorFlowはNumPyおよび多次元配列を基盤としています。この多次元配列は「テンソル(tensor)」とも呼ばれます。主な特徴は以下の通りです。ディープニューラルネットワークの構築・学習をサポート高いスケーラビリテ