TensorFlowとPythonを使ってモデルをトレーニングする方法
TensorFlowでは、fitメソッドを使ってモデルをトレーニングできます。このメソッドには、エポック数(データセット全体を何回繰り返して学習させるかを示す数値)とトレーニング用データを指定します。
実行環境について
本記事のコードはGoogle Colaboratory(Google Colab)で実行しています。Google Colabはブラウザ上でPythonコードを実行できるサービスで、面倒な環境構築が不要なうえ、GPU(グラフィックス処理ユニット)を無料で利用できるのが大きな特徴です。ColaboratoryはJupyter Notebookをベースに構築されています。
モデルのトレーニングコード
print("The model is being trained")
epochs=12
history = model.fit(
train_ds,
validation_data=val_ds,
epochs=epochs
)コード出典:https://www.tensorflow.org/tutorials/images/classification
実行結果
The model is being trained Epoch 1/12 92/92 [==============================] - 94s 1s/step - loss: 1.6007 - accuracy: 0.3411 - val_loss: 1.0708 - val_accuracy: 0.5627 Epoch 2/12 92/92 [==============================] - 92s 995ms/step - loss: 1.0138 - accuracy: 0.5843 - val_loss: 0.9451 - val_accuracy: 0.6458 Epoch 3/12 92/92 [==============================] - 91s 990ms/step - loss: 0.8382 - accuracy: 0.6767 - val_loss: 0.9054 - val_accuracy: 0.6471 Epoch 4/12 92/92 [==============================] - 90s 984ms/step - loss: 0.6362 - accuracy: 0.7580 - val_loss: 0.8872 - val_accuracy: 0.6540 Epoch 5/12 92/92 [==============================] - 94s 1s/step - loss: 0.4125 - accuracy: 0.8572 - val_loss: 0.9114 - val_accuracy: 0.6676 Epoch 6/12 92/92 [==============================] - 91s 988ms/step - loss: 0.2460 - accuracy: 0.9207 - val_loss: 1.0891 - val_accuracy: 0.6757 Epoch 7/12 92/92 [==============================] - 91s 988ms/step - loss: 0.1721 - accuracy: 0.9532 - val_loss: 1.2619 - val_accuracy: 0.6635 Epoch 8/12 92/92 [==============================] - 90s 983ms/step - loss: 0.0658 - accuracy: 0.9823 - val_loss: 1.4119 - val_accuracy: 0.6703 Epoch 9/12 92/92 [==============================] - 90s 983ms/step - loss: 0.0556 - accuracy: 0.9865 - val_loss: 1.6113 - val_accuracy: 0.6090 Epoch 10/12 92/92 [==============================] - 91s 992ms/step - loss: 0.0805 - accuracy: 0.9729 - val_loss: 1.9744 - val_accuracy: 0.6390 Epoch 11/12 92/92 [==============================] - 90s 979ms/step - loss: 0.0545 - accuracy: 0.9838 - val_loss: 1.9303 - val_accuracy: 0.6662 Epoch 12/12 92/92 [==============================] - 96s 1s/step - loss: 0.0176 - accuracy: 0.9961 - val_loss: 1.8234 - val_accuracy: 0.6540
コードの解説
model.fitメソッドを呼び出すことで、モデルがトレーニングデータに適合するように学習を行います。- 引数
epochsには学習の繰り返し回数を指定します。ここでは12エポックに設定しています。 validation_dataに検証用データセットを渡すことで、各エポックごとに検証データでの損失(val_loss)と精度(val_accuracy)が計算され、過学習の兆候を把握できます。- 戻り値の
historyオブジェクトには、各エポックの損失や精度などの学習履歴が記録されており、後からグラフ化して学習の推移を分析することが可能です。
実行結果を見ると、トレーニングデータに対する精度(accuracy)はエポックが進むにつれて上昇し、最終的に約99.6%に達しています。一方、検証データの損失(val_loss)は途中から増加傾向にあるため、過学習が起きている可能性があります。このような場合は、ドロップアウトや正則化、早期終了(Early Stopping)などの手法を組み合わせると、汎化性能の向上が期待できます。
-
TensorFlowとPythonで線形モデルをトレーニングする方法を解説
TensorFlowとは TensorFlowは、Googleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて各種アルゴリズムやディープラーニングアプリケーションなどを実装できます。研究用途だけでなく、本番環境(プロダクション)でも幅広く利用されています。 TensorFlowのインストール方法 Windows環境では、以下のコマンドを実行するだけで「tensorflow」パッケージをインストールできます。 pip install tensorflow テンソル(Tensor)とは何か テンソルはTensorFlowにおける基本的なデータ
-
Kerasを使ってPythonでモデルをプロットする方法をわかりやすく解説
TensorFlowとはTensorFlowは、Googleが提供している機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、アルゴリズムの実装やディープラーニングアプリケーションの開発など、幅広い用途に活用できます。研究目的から本番環境での運用まで対応しており、複雑な数値計算を高速に実行するための最適化技術が数多く組み込まれています。TensorFlowにおける「テンソル(Tensor)」は、データを扱うための基本的なデータ構造です。テンソルは多次元配列(またはリスト)であり、データフローグラフと呼ばれる計算グラフのノード同士をエッジでつ