ケミカルの深さモデルの訓練過程と結果の記録方法について話します。
トレーニングの記録
時間を利用してモデルを記録します。
history=model.fit(X_train, Y_train, epochs=epochs,batch_size=batch_size,validation_split=0.1)
訓練過程をhistoryに記録する時間を利用してモデルを記録します。
import time
model_id = np.int64(time.strftime('%Y%m%d%H%M', time.localtime(time.time())))
model.save('./VGG16'+str(model_id)+'.h5')
保存モデルと構造図
from keras.utils import plot_model
model.save('/opt/Data1/lixiang/letter_recognition/models/VGG16'+str(model_id)+'.h5')
plot_model(model, to_file='/opt/Data1/lixiang/letter_recognition/models/VGG16'+str(model_id)+'.png')
訓練プロセスの曲線を描く
import matplotlib.pyplot as plt
fig = plt.figure()#
plt.plot(history.history['acc'],label='training acc')
plt.plot(history.history['val_acc'],label='val acc')
plt.title('model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(loc='lower right')
fig.savefig('VGG16'+str(model_id)+'acc.png')
fig = plt.figure()
plt.plot(history.history['loss'],label='training loss')
plt.plot(history.history['val_loss'], label='val loss')
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(loc='upper right')
fig.savefig('VGG16'+str(model_id)+'loss.png')
ファイルレコード最終トレーニング結果
logFilePath = './log.txt'
fobj = open(logFilePath, 'a')
fobj.write('model id: ' + str(model_id)+'
')
fobj.write('epoch: '+ str(epochs) +'
')
fobj.write('x_train shape: ' + str(X_train.shape) + '
')
fobj.write('x_test shape: ' + str(X_test.shape)+'
')
fobj.write('training accuracy: ' + str(history.history['acc'][-1]) + '
')
fobj.write('model evaluation results: ' + str(score[0]) + ' ' +str(score[-1])+'
')
fobj.write('---------------------------------------------------------------------------
')
fobj.write('
')
fobj.close()
トレーニング中間プロセスを辞書形式で保存します。
import pickle
file = open('./models/history.pkl', 'wb')
pickle.dump(history.history, file)
file.close()
以上のように、ケアレスの深さモデルトレーニングの過程と結果記録方式は小編集で皆さんに提供した内容の全部です。参考にしていただければと思います。よろしくお願いします。