1. 程式人生 > 程式設計 >淺談keras的深度模型訓練過程及結果記錄方式

淺談keras的深度模型訓練過程及結果記錄方式

記錄訓練過程

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)+'\n')
fobj.write('epoch: '+ str(epochs) +'\n')
fobj.write('x_train shape: ' + str(X_train.shape) + '\n')
fobj.write('x_test shape: ' + str(X_test.shape)+'\n')
fobj.write('training accuracy: ' + str(history.history['acc'][-1]) + '\n')
fobj.write('model evaluation results: ' + str(score[0]) + ' ' +str(score[-1])+'\n')
fobj.write('---------------------------------------------------------------------------\n')
fobj.write('\n')
fobj.close()

以字典格式儲存訓練中間過程

import pickle
file = open('./models/history.pkl','wb')
pickle.dump(history.history,file)
file.close()

以上這篇淺談keras的深度模型訓練過程及結果記錄方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。