在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的绘图工具matplotlib使用实例
Jul 03 Python
使用Python编写vim插件的简单示例
Apr 17 Python
python实现批量改文件名称的方法
May 25 Python
Python中在for循环中嵌套使用if和else语句的技巧
Jun 20 Python
Python闭包之返回函数的函数用法示例
Jan 27 Python
浅谈Python中重载isinstance继承关系的问题
May 04 Python
Django中的文件的上传的几种方式
Jul 23 Python
对Python Pexpect 模块的使用说明详解
Feb 14 Python
python Tkinter版学生管理系统
Feb 20 Python
详解python中递归函数
Apr 16 Python
Python实现LR1文法的完整实例代码
Oct 25 Python
Opencv实现二维直方图的计算及绘制
Jul 21 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
简单示例AJAX结合PHP代码实现登录效果代码
2008/07/25 PHP
c#中的实现php中的preg_replace
2009/12/21 PHP
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
PHP fopen函数用法实例讲解
2019/02/15 PHP
JavaScript实现两个Table固定表头根据页面大小自行调整
2014/01/03 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
2015/01/26 Javascript
D3.js实现文本的换行详解
2016/10/14 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
详解Vue文档中几个易忽视部分的剖析
2018/03/24 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
2018/11/08 Javascript
浅谈小程序 setData学问多
2019/02/20 Javascript
详解javascript对数组和json数组的操作
2019/04/15 Javascript
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
JavaScript 如何在浏览器中使用摄像头
2020/12/02 Javascript
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
python循环监控远程端口的方法
2015/03/14 Python
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
彻底搞懂Python字符编码
2018/01/23 Python
python删除不需要的python文件方法
2018/04/24 Python
Python 中字符串拼接的多种方法
2018/07/30 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
自荐信格式的六要素
2013/09/21 职场文书
家居饰品店创业计划书
2014/01/31 职场文书
2014年母亲节寄语
2014/05/07 职场文书
学校爱国卫生月活动总结
2014/06/25 职场文书
学校综治宣传月活动总结
2014/07/02 职场文书
刑事附带民事代理词
2015/05/25 职场文书
初中运动会闭幕词范本3篇
2019/12/09 职场文书
详解java如何集成swagger组件
2021/06/21 Java/Android
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server