浅谈keras的深度模型训练过程及结果记录方式

 更新时间:2020年01月24日 10:25:26   作者:sjtu_leexx  
今天小编就为大家分享一篇浅谈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的深度模型训练过程及结果记录方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 快速进修Python指南之面向对象基础

    快速进修Python指南之面向对象基础

    这篇文章主要为大家介绍了Java开发者快速进修Python指南之面向对象基础,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • 利用Opencv实现图片的油画特效实例

    利用Opencv实现图片的油画特效实例

    这篇文章主要给大家介绍了关于利用Opencv实现图片的油画特效的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 如何利用python脚本自动部署k8s

    如何利用python脚本自动部署k8s

    这篇文章主要介绍了利用python脚本自动部署k8s的方法,本文通过脚本代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Python操作rabbitMQ的示例代码

    Python操作rabbitMQ的示例代码

    这篇文章主要介绍了Python操作rabbitMQ的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Python 实现使用空值进行赋值 None

    Python 实现使用空值进行赋值 None

    这篇文章主要介绍了Python 实现使用空值进行赋值 None,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 一文详解python如何将编写的模块打包上传至pypi

    一文详解python如何将编写的模块打包上传至pypi

    我们此前花了很大功夫写了一个极其简单的web框架myWeb,想要给别人用的时候,需要让别人拷贝源代码才行,这太low了,所以本篇文章会介绍如何将自己写的模块打包上传至pypi,以便让需要的人通过pip进行安装,感兴趣的同学可以参考阅读
    2023-05-05
  • pandas常用表连接merge/concat/join/append详解

    pandas常用表连接merge/concat/join/append详解

    使用python的pandas库可以很容易帮你搞定,而且性能也是很出色的;百万级的表关联,可以秒出,本文给大家分享pandas常用表连接merge/concat/join/append详解,感兴趣的朋友跟随小编一起看看吧
    2023-02-02
  • 使用tkinter实现三子棋游戏

    使用tkinter实现三子棋游戏

    这篇文章主要为大家详细介绍了使用tkinter实现三子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • python中的格式化输出方法

    python中的格式化输出方法

    这篇文章主要介绍了python中的格式化输出方法, 数据可以以人类可读的形式打印,或写入文件以供将来使用,甚至可以以某种其他指定的形式。 用户通常希望对输出格式进行更多控制,而不是简单地打印以空格分隔的值,更多格式化输出方式需要的朋友可以参考下面文章内容
    2022-03-03
  • python中的import、from import及import as的区别解析

    python中的import、from import及import as的区别解析

    在Python中,如果import的语句比较长,导致后续引用不方便,可以使用as语法,这篇文章主要介绍了python中的import、from import以及import as的区别,需要的朋友可以参考下
    2022-10-10

最新评论