在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网络编程调用recv函数完整接收数据的三种方法
Mar 31 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
Aug 02 Python
Linux下多个Python版本安装教程
Aug 15 Python
python pandas获取csv指定行 列的操作方法
Jul 12 Python
关于Python中的向量相加和numpy中的向量相加效率对比
Aug 26 Python
python 字符串常用函数详解
Sep 11 Python
安装Pycharm2019以及配置anconda教程的方法步骤
Nov 11 Python
使用Pyhton集合set()实现成果查漏的例子
Nov 24 Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 Python
Python使用Pygame绘制时钟
Nov 29 Python
python反扒机制的5种解决方法
Feb 06 Python
Pytorch 如何加速Dataloader提升数据读取速度
May 28 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递归实现无限分类 格式化数组的详解
2013/06/08 PHP
使用PHP编写的SVN类
2013/07/18 PHP
wampserver改变默认网站目录的办法
2015/08/05 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
javascript html 静态页面传参数
2009/04/10 Javascript
js 表格隔行颜色
2009/12/02 Javascript
TBCompressor js代码压缩
2011/01/05 Javascript
JavaScript中的关键字"VAR"使用详解 分享
2013/07/31 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
javascript实现下雪效果【实例代码】
2016/05/03 Javascript
js实现砖头在页面拖拉效果
2020/11/20 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
javascript 判断用户有没有操作页面
2017/10/17 Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
2019/04/30 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
JavaScript函数重载操作实例浅析
2020/05/02 Javascript
Python实现的简单万年历例子分享
2014/04/25 Python
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
Jupyter Notebook的连接密码 token查询方式
2020/04/21 Python
浅谈PyTorch中in-place operation的含义
2020/06/27 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
详解HTML5中表单验证的8种方法介绍
2016/12/19 HTML / CSS
使用索引(Index)有哪些需要考虑的因素
2016/10/19 面试题
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
工作表现自我评价
2014/02/08 职场文书
教师党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
英语教师个人工作总结
2015/02/09 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
初中团委工作总结
2015/08/13 职场文书
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫