在keras中实现查看其训练loss值


Posted in Python onJune 16, 2020

想要查看每次训练模型后的 loss 值变化需要如下操作

loss_value= [ ]
self.history = model.fit(state,target_f,epochs=1, batch_size =32)
b = abs(float(self.history.history[‘loss'][0]))
loss_value.append(b)
print(loss_value)
loss_value = np.array( loss_value)
x = np.array(range(len( loss_value)))
plt.plot(x, loss_value, c = ‘g')
pt.svefit('c地址‘, dpi= 100)
plt.show()

scipy.sparse 稀疏矩阵 函数集合

pandas 用于在各种文件中提取,并处理分析数据; 有DataFrame数据结构,类似表格。

x=np.linspace(-10, 10, 100) 生成100个在-10到10之间的数组

补充知识:对keras训练过程中loss,val_loss,以及accuracy,val_accuracy的可视化

我就废话不多说了,大家还是直接看代码吧!

hist = model.fit_generator(generator=data_generator_reg(X=x_train, Y=[y_train_a,y_train_g], batch_size=batch_size),
         steps_per_epoch=train_num // batch_size,
         validation_data=(x_test, [y_test_a,y_test_g]),
         epochs=nb_epochs, verbose=1,
         workers=8, use_multiprocessing=True,
         callbacks=callbacks)

 logging.debug("Saving weights...")
 model.save_weights(os.path.join(db_name+"_models/"+save_name, save_name+'.h5'), overwrite=True)
 pd.DataFrame(hist.history).to_hdf(os.path.join(db_name+"_models/"+save_name, 'history_'+save_name+'.h5'), "history")

在训练时,会输出如下打印:

640/640 [==============================] - 35s 55ms/step - loss: 4.0216 - mean_absolute_error: 4.6525 - val_loss: 3.2888 - val_mean_absolute_error: 3.9109

有训练loss,训练预测准确度,以及测试loss,以及测试准确度,将文件保存后,使用下面的代码可以对训练以及评估进行可视化,下面有对应的参数名称:

loss,mean_absolute_error,val_loss,val_mean_absolute_error

import pandas as pd
import matplotlib.pyplot as plt
import argparse
import os
import numpy as np

def get_args():
 parser = argparse.ArgumentParser(description="This script shows training graph from history file.")
 parser.add_argument("--input", "-i", type=str, required=True,
      help="path to input history h5 file")
 args = parser.parse_args()
 return args

def main():
 args = get_args()
 input_path = args.input

 df = pd.read_hdf(input_path, "history")
 print(np.min(df['val_mean_absolute_error']))
 input_dir = os.path.dirname(input_path)
 plt.plot(df["loss"], '-o', label="loss (age)", linewidth=2.0)
 plt.plot(df["val_loss"], '-o', label="val_loss (age)", linewidth=2.0)
 plt.xlabel("Number of epochs", fontsize=20)
 plt.ylabel("Loss", fontsize=20)
 plt.legend()
 plt.grid()
 plt.savefig(os.path.join(input_dir, "loss.pdf"), bbox_inches='tight', pad_inches=0)
 plt.cla()

 plt.plot(df["mean_absolute_error"], '-o', label="training", linewidth=2.0)
 plt.plot(df["val_mean_absolute_error"], '-o', label="validation", linewidth=2.0)
 ax = plt.gca()
 ax.set_ylim([2,13])
 ax.set_aspect(0.6/ax.get_data_ratio())
 plt.xticks(fontsize=20)
 plt.yticks(fontsize=20)
 plt.xlabel("Number of epochs", fontsize=20)
 plt.ylabel("Mean absolute error", fontsize=20)
 plt.legend(fontsize=20)
 plt.grid()
 plt.savefig(os.path.join(input_dir, "performance.pdf"), bbox_inches='tight', pad_inches=0)

if __name__ == '__main__':
 main()

以上这篇在keras中实现查看其训练loss值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中list初始化方法示例
Sep 18 Python
Python做文本按行去重的实现方法
Oct 19 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 Python
使用python实现ANN
Dec 20 Python
python中字符串的操作方法大全
Jun 03 Python
Python格式化日期时间操作示例
Jun 28 Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 Python
把django中admin后台界面的英文修改为中文显示的方法
Jul 26 Python
python使用HTMLTestRunner导出饼图分析报告的方法
Dec 30 Python
python文件和文件夹复制函数
Feb 07 Python
Python __slots__的使用方法
Nov 15 Python
解决python3.x安装numpy成功但import出错的问题
Nov 17 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
Jun 16 #Python
Keras在训练期间可视化训练误差和测试误差实例
Jun 16 #Python
如何在Windows中安装多个python解释器
Jun 16 #Python
使用pyplot.matshow()函数添加绘图标题
Jun 16 #Python
浅谈matplotlib中FigureCanvasXAgg的用法
Jun 16 #Python
利用Python实现Excel的文件间的数据匹配功能
Jun 16 #Python
Pytorch 使用CNN图像分类的实现
Jun 16 #Python
You might like
一步一步学习PHP(2)――PHP类型
2010/02/15 PHP
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
2019/04/02 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
javascript引用对象的方法代码
2007/08/13 Javascript
可在线编辑网页文字效果代码(单击)
2013/03/02 Javascript
js中 关于undefined和null的区别介绍
2013/04/16 Javascript
js点击出现悬浮窗效果不使用JQuery插件
2014/01/20 Javascript
js调试系列 初识控制台
2014/06/18 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
ionic js 模型 $ionicModal 可以遮住用户主界面的内容框
2016/06/06 Javascript
javascript显示系统当前时间代码
2016/12/29 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
ajax请求data遇到的问题分析
2018/01/18 Javascript
JavaScript Canvas编写炫彩的网页时钟
2019/10/16 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
[43:41]OG vs Newbee 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python编码时应该注意的几个情况
2013/03/04 Python
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
python购物车程序简单代码
2018/04/18 Python
python基于http下载视频或音频
2018/06/20 Python
Windows下python3.7安装教程
2018/07/31 Python
django中间键重定向实例方法
2019/11/10 Python
python文字转语音的实例代码分析
2019/11/12 Python
浅析python 定时拆分备份 nginx 日志的方法
2020/04/27 Python
python Zmail模块简介与使用示例
2020/12/19 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
Pandas直接读取sql脚本的方法
2021/01/21 Python
几道数据库的面试题或笔试题
2014/05/31 面试题
班级团队活动方案
2014/08/14 职场文书
工作收入证明范本
2015/06/12 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书