正規化後のTensorFlowモデルをトレーニング・構築するには?compileとfitの使い方を解説
あわび(アワビ)データセットに対してモデルをトレーニング・構築するには、「compile」メソッドと「fit」メソッドを使用します。それぞれモデルのコンパイルと学習を担当しており、「fit」メソッドではパラメータとしてエポック数も指定できます。
使用するデータセットについて
本記事では、あわびの各種測定値を含む「abaloneデータセット」を使用します。アワビは巻き貝の一種であり、このデータセットの目的は、その他の測定値から年齢を予測することです。
コードの実行にはGoogle Colaboratory(Google Colab)を使用しています。Google Colabはブラウザ上でPythonコードを実行できる環境で、事前設定が一切不要なうえ、GPU(グラフィックス処理ユニット)にも無料でアクセスできます。ColaboratoryはJupyter Notebookをベースに構築されています。
モデルのコンパイルとトレーニングのコード
print("The model is being compiled")
norm_abalone_model.compile(loss = tf.losses.MeanSquaredError(),optimizer = tf.optimizers.Adam())
print("The model is being fit to the data")
norm_abalone_model.fit(abalone_features, abalone_labels, epochs=8)コード出典:https://www.tensorflow.org/tutorials/load_data/csv
実行結果
The model is being compiled The model is being fit to the data Epoch 1/8 104/104 [==============================] - 0s 989us/step - loss: 98.3651 Epoch 2/8 104/104 [==============================] - 0s 945us/step - loss: 65.4568 Epoch 3/8 104/104 [==============================] - 0s 922us/step - loss: 21.7297 Epoch 4/8 104/104 [==============================] - 0s 912us/step - loss: 6.3429 Epoch 5/8 104/104 [==============================] - 0s 988us/step - loss: 5.0949 Epoch 6/8 104/104 [==============================] - 0s 958us/step - loss: 4.9868 Epoch 7/8 104/104 [==============================] - 0s 1ms/step - loss: 4.8982 Epoch 8/8 104/104 [==============================] - 0s 1ms/step - loss: 4.7936 <tensorflow.python.keras.callbacks.History at 0x7fda8213c898>
コードの解説
- 正規化レイヤーの構築が完了したら、そのモデルをトレーニングデータで学習させます。
- 「compile」メソッドでは損失関数に平均二乗誤差(MeanSquaredError)、オプティマイザーにAdamを指定しています。
- トレーニングの際は、「Model.fit」メソッドを使って特徴量(features)とラベル(labels)をモデルに渡します。ここではエポック数として8を指定し、8回繰り返し学習を行っています。
実行結果を見ると、エポックが進むごとにloss(損失)の値が98.3651から4.7936へと大幅に減少しており、モデルがデータに適切に適合していることが確認できます。
-
TensorFlowと事前学習済みモデルを使ってPythonでデータを可視化する方法
TensorFlowと事前学習済みモデルを組み合わせることで、matplotlibライブラリを使用してデータを簡単に可視化できます。グラフの描画には「plot」メソッドを使い、学習の進捗や精度の推移をコンソール上で確認できます。関連記事: TensorFlowとは何か?KerasがTensorFlowと連携してニューラルネットワークを構築する仕組み転移学習(Transfer Learning)の基本少なくとも1つの畳み込み層(Convolutional Layer)を含むニューラルネットワークは、畳み込みニューラルネットワーク(CNN)と呼ばれ、学習モデルの構築に広く活用されています。本記事で
-
TensorFlowとPythonを使ってモデルをトレーニングする方法
TensorFlowでは、fitメソッドを使ってモデルをトレーニングできます。このメソッドには、エポック数(データセット全体を何回繰り返して学習させるかを示す数値)とトレーニング用データを指定します。実行環境について本記事のコードはGoogle Colaboratory(Google Colab)で実行しています。Google Colabはブラウザ上でPythonコードを実行できるサービスで、面倒な環境構築が不要なうえ、GPU(グラフィックス処理ユニット)を無料で利用できるのが大きな特徴です。ColaboratoryはJupyter Notebookをベースに構築されています。モデルのトレーニ