在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中使用语句导入模块或包的机制研究
Mar 30 Python
Linux中Python 环境软件包安装步骤
Mar 31 Python
利用python为运维人员写一个监控脚本
Mar 25 Python
Python中staticmethod和classmethod的作用与区别
Oct 11 Python
Python lambda表达式用法实例分析
Dec 25 Python
Python实现高斯函数的三维显示方法
Dec 29 Python
Python多进程入门、分布式进程数据共享实例详解
Jun 03 Python
在cmd中查看python的安装路径方法
Jul 03 Python
Django Form 实时从数据库中获取数据的操作方法
Jul 25 Python
Python中xml和dict格式转换的示例代码
Nov 07 Python
Numpy将二维数组添加到空数组的实现
Dec 05 Python
Python装饰器结合递归原理解析
Jul 02 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
Django中通过定时任务触发页面静态化的处理方式
2018/08/29 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
代码精简的可以实现元素圆角的js函数
2007/07/21 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
浅析AngularJS中的生命周期和延迟处理
2015/06/18 Javascript
详解JavaScript中基于原型prototype的继承特性
2016/05/05 Javascript
web 前端常用组件之Layer弹出层组件
2016/09/22 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
详解vue中$nextTick和$forceUpdate的用法
2019/12/11 Javascript
vue实现简单全选和反选功能
2020/09/15 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
2020/12/01 Javascript
js实现石头剪刀布游戏
2020/10/11 Javascript
[03:00]《DAC最前线》之欧美新秀VS老将
2015/02/01 DOTA
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
ubuntu系统下使用pm2设置nodejs开机自启动的方法
2018/05/12 NodeJs
python退出命令是什么?详解python退出方法
2018/12/10 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
python dataframe NaN处理方式
2019/12/26 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
Python网页解析器使用实例详解
2020/05/30 Python
如何学习Python time模块
2020/06/03 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
开会迟到检讨书
2014/02/03 职场文书
机关道德讲堂实施方案
2014/03/15 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
文书工作总结(范文)
2019/07/11 职场文书
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL
Python开发简易五子棋小游戏
2022/05/02 Python