Python
 Computer >> コンピューター >  >> プログラミング >> Python

【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を指定することで分割の再現性が保証されます。

  1. TensorFlowとPythonを使って花のデータセットを可視化する方法

    花のデータセットは、matplotlibライブラリを使用することで簡単に可視化できます。imshowメソッドを使うと、画像をコンソール上に表示でき、データセット全体を反復処理しながら最初の数枚の画像だけを出力するといったことも可能です。使用するデータセットについて本記事では、数千枚の花の画像を含む「flowers(花)」データセットを使用します。このデータセットには5つのサブディレクトリが含まれており、各クラス(花の種類)ごとに1つのサブディレクトリが割り当てられています。なお、以下のコードはGoogle Colaboratoryで実行することを想定しています。Google Colab(Col

  2. 【入門】PythonとTensorFlowでテンソルを作成し、メッセージを表示する方法

    TensorFlowはGoogleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、アルゴリズムの実装やディープラーニングアプリケーションの開発など、幅広い用途に活用できます。研究目的から本番環境での運用まで対応しており、複雑な数値計算を高速に実行するための最適化技術も備えています。TensorFlowの特徴TensorFlowはNumPyおよび多次元配列を基盤としています。この多次元配列は「テンソル(tensor)」とも呼ばれます。主な特徴は以下の通りです。ディープニューラルネットワークの構築・学習をサポート高いスケーラビリテ