在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添加元素的4种方法分享
Nov 28 Python
详解用python实现简单的遗传算法
Jan 02 Python
浅谈Python批处理文件夹中的txt文件
Mar 11 Python
itchat-python搭建微信机器人(附示例)
Jun 11 Python
Python3.5以上版本lxml导入etree报错的解决方案
Jun 26 Python
Django框架之登录后自定义跳转页面的实现方法
Jul 18 Python
python队列原理及实现方法示例
Nov 27 Python
python、PyTorch图像读取与numpy转换实例
Jan 13 Python
Python对wav文件的重采样实例
Feb 25 Python
详解python实现可视化的MD5、sha256哈希加密小工具
Sep 14 Python
python 求两个向量的顺时针夹角操作
Mar 04 Python
Python IO文件管理的具体使用
Mar 20 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学习之PHP运算符
2006/10/09 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
Laravel框架搜索分页功能示例
2019/02/01 PHP
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
javascript中的onkeyup和onkeydown区别介绍
2013/04/28 Javascript
ExtJS如何设置与获取radio控件的选取状态
2014/01/22 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
JavaScript中获取鼠标位置相关属性总结
2014/10/11 Javascript
jQuery验证插件validation使用指南
2015/04/21 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
2016/12/27 Javascript
Kotlin学习第一步 kotlin语法特性
2017/05/25 Javascript
D3.js进阶系列之CSV表格文件的读取详解
2017/06/06 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
[53:15]Newbee vs Pain 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python编码类型转换方法详解
2016/07/01 Python
python中web框架的自定义创建
2019/09/08 Python
详解html5 shiv.js和respond.min.js
2018/01/24 HTML / CSS
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
日本乐天德国站:Rakuten.de
2019/05/16 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
英语系本科生个人求职信
2013/09/21 职场文书
超市促销活动方案
2014/03/05 职场文书
大学生两会学习心得体会
2014/03/10 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书