下記にプログラムと出力結果を載せますが、出力結果のlossはどうやって求めていますか?
Python
1# 必要ライブラリのインポート 2from keras.models import Sequential 3from keras.layers import Dense,Dropout 4from keras import losses 5from keras import optimizers 6from keras import callbacks 7import os 8 9# モデル生成 10model = Sequential() 11 12# 層の追加 13layers=[ 14 Dense(128, activation='elu'), 15 Dropout(0.01), 16 Dense(128, activation='selu'), 17 Dropout(0.01), 18 Dense(64, activation='softmax'), 19 Dense(1, activation='linear') 20] 21for layer in layers: 22 model.add(layer) 23 24# モデルの学習設定 25 26model.compile( 27 loss=losses.mean_squared_error, 28 optimizer=optimizers.Adam(), 29 metrics=['acc'] 30) 31 32# モデルの学習 33result = model.fit( 34 X_train_n, 35 y_train_n, 36 batch_size=32, 37 epochs=100, 38 callbacks=[ 39 callbacks.ModelCheckpoint( 40 filepath = './model/best_model.h5', 41 monitor='loss', 42 save_best_only=True, 43 ) 44 ] 45)
Epoch 1/100 354/354 [==============================] - 0s 644us/step - loss: 0.1649 - acc: 0.0056 Epoch 2/100 354/354 [==============================] - 0s 116us/step - loss: 0.0638 - acc: 0.0056 Epoch 3/100 354/354 [==============================] - 0s 82us/step - loss: 0.0466 - acc: 0.0056 Epoch 4/100 354/354 [==============================] - 0s 82us/step - loss: 0.0442 - acc: 0.0056 Epoch 5/100 354/354 [==============================] - 0s 96us/step - loss: 0.0430 - acc: 0.0056 Epoch 6/100 354/354 [==============================] - 0s 90us/step - loss: 0.0421 - acc: 0.0056 Epoch 7/100 354/354 [==============================] - 0s 82us/step - loss: 0.0412 - acc: 0.0056 Epoch 8/100 354/354 [==============================] - 0s 85us/step - loss: 0.0400 - acc: 0.0056 Epoch 9/100 354/354 [==============================] - 0s 87us/step - loss: 0.0379 - acc: 0.0056 Epoch 10/100 354/354 [==============================] - 0s 90us/step - loss: 0.0355 - acc: 0.0056 Epoch 11/100 354/354 [==============================] - 0s 90us/step - loss: 0.0331 - acc: 0.0056 Epoch 12/100 354/354 [==============================] - 0s 101us/step - loss: 0.0306 - acc: 0.0056 ・・・
下記のnp.mean(losses.mean_squared_error())で出力結果のLOSSと等しくなると思っていましたが、なりません。なぜでしょうか?
また、最適なモデルの使用方法は下記の使用方法で問題ありませんでしょうか?
Python
1# 学習での最終モデルを使用した損失算出 2y_predict_n = model.predict(X_train_n) 3np.mean(losses.mean_squared_error(y_predict_n,y_train_n)) 4 5# 最適モデルの損失算出 6model = keras.models.load_model('./model/best_model.h5') 7y_predict_n = model.predict(X_train_n) 8np.mean(losses.mean_squared_error(y_predict_n,y_train_n))
あなたの回答
tips
プレビュー