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

TensorFlowで花のデータセットを使ってモデルの学習を続ける方法

花のデータセットでモデルの学習を継続するには、Kerasのfitメソッドを使用します。このメソッドには、エポック数(データ全体を何回繰り返してモデルを構築するかの回数)も指定します。学習の過程では、サンプル画像がコンソール上に表示されることもあります。

使用するデータセットについて

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

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

モデルを学習させるコード

print("The data is fit to the model")
model.fit(
    train_ds,
    validation_data=val_ds,
    epochs=3
)

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

実行結果

The data is fit to the model
Epoch 1/3
92/92 [==============================] - 102s 1s/step - loss: 0.7615 - accuracy: 0.7146 - val_loss: 0.7673 - val_accuracy: 0.7180
Epoch 2/3
92/92 [==============================] - 95s 1s/step - loss: 0.5864 - accuracy: 0.7786 - val_loss: 0.6814 - val_accuracy: 0.7629
Epoch 3/3
92/92 [==============================] - 95s 1s/step - loss: 0.4180 - accuracy: 0.8478 - val_loss: 0.7040 - val_accuracy: 0.7575
<tensorflow.python.keras.callbacks.History at 0x7fda872ea940>

コードの解説

  • 以前keras.preprocessingを使って作成したものと同様のデータセットを、今回はtf.data.Datasetを用いて構築しています。
  • fitメソッドに訓練用データセットと検証用データセットを渡すことで、モデルの学習をそのまま継続できます。
  • ここでは学習時間を抑えるため、エポック数を3と少なめに設定しています。

実行結果を見ると、エポックが進むごとに訓練データに対するaccuracy(正解率)が0.71から0.84へと向上していることがわかります。一方、検証データのval_accuracyは0.75前後で推移しており、エポック数を増やしすぎると過学習のリスクもあるため、適切なタイミングでの早期終了や正則化の検討が有効です。

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

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

  2. TensorFlowを使ってMNISTデータセット用のモデルを定義する方法

    TensorFlowは、Googleが提供している機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、各種アルゴリズムやディープラーニングアプリケーションの実装が可能になります。複雑な数値計算を高速に処理できる最適化技術を備えているのが特徴で、これは内部でNumPyと多次元配列を利用しているためです。この多次元配列は「テンソル(Tensor)」とも呼ばれます。また、深層ニューラルネットワークの構築もサポートしています。TensorFlowのインストールWindows環境に「tensorflow」パッケージをインストールするには、以下のコマン