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

TensorFlowで花のデータセットを使ってモデルをコンパイル・学習する方法


花のデータセットに対しては、「compile」メソッドでモデルをコンパイルし、「fit」メソッドで学習(フィッティング)を行うことができます。「fit」メソッドには、訓練用データセットと検証用データセットをパラメータとして渡し、エポック数も同じメソッド内で指定します。

関連記事:
TensorFlowとは何か?KerasがTensorFlowと連携してニューラルネットワークを構築する仕組みを解説

本記事では、数千枚の花の画像を含む「flowers」データセットを使用します。このデータセットは5つのサブディレクトリで構成されており、クラス(花の種類)ごとに1つのサブディレクトリが割り当てられています。

以下のコードはGoogle Colaboratory上で実行しています。Google Colab(Colaboratory)はブラウザ上でPythonコードを実行できるサービスで、事前の環境構築が不要なうえ、GPU(グラフィックス処理装置)にも無料でアクセス可能です。ColaboratoryはJupyter Notebookをベースに構築されています。

print("モデルをコンパイルしています")
model.compile(
    optimizer='adam',
    loss=tf.losses.SparseCategoricalCrossentropy(from_logits=True),
    metrics=['accuracy'])
print("モデルをデータに適合させています")
model.fit(
    train_ds,
    validation_data=val_ds,
    epochs=3
)

コード出典:https://www.tensorflow.org/tutorials/load_data/images

実行結果

モデルをコンパイルしています
モデルをデータに適合させています
Epoch 1/3
92/92 [==============================] - 107s 1s/step - loss: 1.3570 - accuracy: 0.4183 - val_loss: 1.0730 - val_accuracy: 0.5913
Epoch 2/3
92/92 [==============================] - 101s 1s/step - loss: 1.0185 - accuracy: 0.5927 - val_loss: 1.0041 - val_accuracy: 0.6199
Epoch 3/3
92/92 [==============================] - 95s 1s/step - loss: 0.8691 - accuracy: 0.6529 - val_loss: 0.9985 - val_accuracy: 0.6281
<tensorflow.python.keras.callbacks.History at 0x7f2cdcbbba90>

解説

  • レイヤーの作成とデータの準備が完了したら、次のステップとして構築したモデルをコンパイルします。
  • コンパイルが完了したら、「fit」メソッドを使ってモデルを入力データセットに適合させ、学習を実行します。
  • 実行結果を見ると、検証精度(val_accuracy)は訓練精度(accuracy)と比べて低い値になっています。
  • この差は、モデルが過学習(オーバーフィッティング)を起こしていることを示しています。過学習への対処としては、データ拡張やドロップアウトの導入などが有効です。
  1. TensorFlowとPythonを使って花のデータセットを可視化する方法

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

  2. TensorFlowでAuto MPGデータセットを使ってモデルをデータに適合させる方法

    TensorFlowはGoogleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションなどを実装できます。研究用途から本番環境まで幅広く活用されています。 Windowsに「tensorflow」パッケージをインストールするには、以下のコマンドを実行します。 pip install tensorflow テンソル(Tensor)はTensorFlowにおける基本的なデータ構造です。フロー図の中で各ノードをつなぐ役割を担っており、このフロー図は「データフローグラフ」と呼ばれます。テンソルとは、要するに