#前提
現在、Google Colab環境を利用して、
kerasで教師あり動画の分類モデルを作っています。
モデル作成そのものに関わることではありませんが、
問題を抱えています。
#実現したいこと
二乗誤差関数'mean_squared_error'と
交差エントロピー誤差関数'sparse_categorical_crossentropy'の学習を比較したいです。
理由は、分類問題の場合使用する誤差関数は交差エントロピー誤差関数が
良いと学びましたが、実際どのぐらい他の誤差関数と比較して優れているか確認したいからです。
#発生している問題
二乗誤差関数'mean_squared_error'を使用した場合、
以下のlossの動きのように、学習してないように思われます。
WARNING:tensorflow:No training configuration found in the save file, so the model was not compiled. Compile it manually.
Epoch 1/30
9/9 [==============================] - 1s 74ms/step - loss: 1.8656 - acc: 0.1212
Epoch 2/30
9/9 [==============================] - 1s 73ms/step - loss: 1.6822 - acc: 0.1243
Epoch 3/30
9/9 [==============================] - 1s 73ms/step - loss: 1.6453 - acc: 0.1221
Epoch 4/30
9/9 [==============================] - 1s 73ms/step - loss: 2.0232 - acc: 0.1651
Epoch 5/30
9/9 [==============================] - 1s 73ms/step - loss: 1.6093 - acc: 0.1031
Epoch 6/30
9/9 [==============================] - 1s 72ms/step - loss: 1.5665 - acc: 0.1021
Epoch 7/30
9/9 [==============================] - 1s 73ms/step - loss: 1.5947 - acc: 0.0889
Epoch 8/30
9/9 [==============================] - 1s 73ms/step - loss: 1.4882 - acc: 0.0959
Epoch 9/30
9/9 [==============================] - 1s 73ms/step - loss: 1.8805 - acc: 0.1572
Epoch 10/30
9/9 [==============================] - 1s 74ms/step - loss: 1.7636 - acc: 0.1419
Epoch 11/30
9/9 [==============================] - 1s 74ms/step - loss: 2.0452 - acc: 0.1575
Epoch 12/30
9/9 [==============================] - 1s 71ms/step - loss: 1.8105 - acc: 0.1327
Epoch 13/30
9/9 [==============================] - 1s 74ms/step - loss: 1.9071 - acc: 0.1534
Epoch 14/30
9/9 [==============================] - 1s 74ms/step - loss: 1.6465 - acc: 0.1224
Epoch 15/30
9/9 [==============================] - 1s 73ms/step - loss: 1.8182 - acc: 0.1438
Epoch 16/30
9/9 [==============================] - 1s 72ms/step - loss: 1.6084 - acc: 0.1006
Epoch 17/30
9/9 [==============================] - 1s 73ms/step - loss: 1.6627 - acc: 0.1162
Epoch 18/30
9/9 [==============================] - 1s 73ms/step - loss: 1.6947 - acc: 0.1305
Epoch 19/30
9/9 [==============================] - 1s 72ms/step - loss: 1.6257 - acc: 0.1228
Epoch 20/30
9/9 [==============================] - 1s 73ms/step - loss: 1.7209 - acc: 0.1147
Epoch 21/30
9/9 [==============================] - 1s 73ms/step - loss: 1.5898 - acc: 0.1021
Epoch 22/30
9/9 [==============================] - 1s 72ms/step - loss: 1.8846 - acc: 0.1447
Epoch 23/30
9/9 [==============================] - 1s 73ms/step - loss: 1.6737 - acc: 0.1247
Epoch 24/30
9/9 [==============================] - 1s 74ms/step - loss: 1.5468 - acc: 0.1165
Epoch 25/30
9/9 [==============================] - 1s 72ms/step - loss: 1.7868 - acc: 0.1244
Epoch 26/30
9/9 [==============================] - 1s 73ms/step - loss: 1.6577 - acc: 0.1211
Epoch 27/30
9/9 [==============================] - 1s 72ms/step - loss: 1.8089 - acc: 0.1282
Epoch 28/30
9/9 [==============================] - 1s 73ms/step - loss: 1.7057 - acc: 0.1370
Epoch 29/30
9/9 [==============================] - 1s 73ms/step - loss: 1.8314 - acc: 0.1271
Epoch 30/30
9/9 [==============================] - 1s 73ms/step - loss: 1.6274 - acc: 0.1105
Complete.
コード
jupyternotebook
1loss = 'mean_squared_error' 2 3# モデル用意 4from tensorflow.keras.utils import plot_model 5from tensorflow.keras import layers, models, initializers, callbacks 6import gc 7 8model = models.load_model('/content/desk/key20201218.h5') 9 10# コンパイル 11model.compile( 12 optimizer='adam', 13 loss = loss, 14 metrics=['acc']) 15 16# 学習 17history = model.fit( 18 train_videos, train_labels, 19 batch_size=16, epochs= 30,) 20 21print("Complete.") 22 23plotLoss(history) 24plotAcc(history)
#取り組んでみたこと
- 交差エントロピー誤差関数'sparse_categorical_crossentropy'の場合(以上のコードの誤差関数の部分のみを以下のように変更した)を見てみた → 学習しているように見える
loss = 'sparse_categorical_crossentropy'
- TensorBoardを使用して、誤差関数の実際の計算をみようとしてみた→どの部分が誤差関数の計算なのかわからない
#追記
今回質問するに当たって本当は、コードを関数にして、
もう少し直接的に比較したいと思っていました。
しかし、関数にしたものを扱おうとすると、計算資源(GPU)に関するエラーが発生してしまいます。
colab環境において学習の比較する良い方法があれば知りたいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。