在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 lxml模块安装教程
Jun 02 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
Jun 02 Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
Jun 18 Python
利用python获取Ping结果示例代码
Jul 06 Python
Python3使用PyQt5制作简单的画板/手写板实例
Oct 19 Python
详解爬虫被封的问题
Apr 23 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
Feb 14 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
Jun 23 Python
Python建造者模式案例运行原理解析
Jun 29 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
Jul 15 Python
使用python把xmind转换成excel测试用例的实现代码
Oct 12 Python
详解用Python把PDF转为Word方法总结
Apr 27 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实现递归循环每一个目录
2010/08/08 PHP
基于PHP 面向对象之成员方法详解
2013/05/04 PHP
php判断输入是否是纯数字,英文,汉字的方法
2015/03/05 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
JavaScript 变量基础知识
2009/11/07 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
简约JS日历控件 实例代码
2013/07/12 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
关于JavaScript作用域你想知道的一切
2016/02/04 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
jquery判断滚动条距离顶部的距离方法
2018/09/05 jQuery
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
python+os根据文件名自动生成文本
2019/03/21 Python
python 使用while写猜年龄小游戏过程解析
2019/10/07 Python
Python集合基本概念与相关操作实例分析
2019/10/30 Python
Python实现自动打开电脑应用的示例代码
2020/04/17 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
美国环保婴儿用品公司:The Honest Company
2017/11/23 全球购物
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
如何写一个自定义标签
2012/12/28 面试题
大学生学习面向未来的赶考思想汇报
2014/09/12 职场文书
领导班子四风问题对照检查材料
2014/09/27 职场文书
秦兵马俑导游词
2015/02/02 职场文书
辞职信模板(中英文版)
2015/02/27 职场文书
导游词书写之黄山
2019/08/06 职场文书