在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函数式编程指南(二):从函数开始
Jun 24 Python
Python下实现的RSA加密/解密及签名/验证功能示例
Jul 17 Python
详解 Python 读写XML文件的实例
Aug 02 Python
python实现批量注册网站用户的示例
Feb 22 Python
详解Python3中setuptools、Pip安装教程
Jun 18 Python
Pandas之DataFrame对象的列和索引之间的转化
Jun 25 Python
Python实现不规则图形填充的思路
Feb 02 Python
python 实现字符串下标的输出功能
Feb 13 Python
keras的load_model实现加载含有参数的自定义模型
Jun 22 Python
Numpy中的数组搜索中np.where方法详细介绍
Jan 08 Python
Python批量将csv文件转化成xml文件的实例
May 10 Python
Python合并多张图片成PDF
Jun 09 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
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
[原创]php实现数组按拼音顺序排序的方法
2017/05/03 PHP
Js中sort()方法的用法
2006/11/04 Javascript
Dojo之路:如何利用Dojo实现Drag and Drop效果
2007/04/10 Javascript
javascript Keycode对照表
2009/10/24 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
使用jQuery清空file文件域的解决方案
2013/04/12 Javascript
Eclipse去除js(JavaScript)验证错误
2014/02/11 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
基于jQuery实现拖拽图标到回收站并删除功能
2015/11/25 Javascript
基于BootStrap的前端分页带省略号和上下页效果
2017/05/18 Javascript
AngularJS 限定$scope的范围实例详解
2017/06/23 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
js实现点击展开隐藏效果(实例代码)
2018/09/28 Javascript
JS中使用new Option()实现时间联动效果
2018/12/10 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
virtualenv实现多个版本Python共存
2017/08/21 Python
python实现Adapter模式实例代码
2018/02/09 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
python如何调用字典的key
2020/05/25 Python
Django实现微信小程序支付的示例代码
2020/09/03 Python
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
高中毕业的自我鉴定
2013/12/09 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis
DBCA命令行搭建Oracle ADG的流程
2021/06/11 Oracle
win10如何开启ahci模式?win10开启ahci模式详细操作教程
2022/07/23 数码科技