在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生成指定尺寸缩略图的示例
May 07 Python
分析并输出Python代码依赖的库的实现代码
Aug 09 Python
转换科学计数法的数值字符串为decimal类型的方法
Jul 16 Python
python 处理数字,把大于上限的数字置零实现方法
Jan 28 Python
Python3 JSON编码解码方法详解
Sep 06 Python
Python 下载及安装详细步骤
Nov 04 Python
Python发送手机动态验证码代码实例
Feb 28 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
基于打开pycharm有带图片md文件卡死问题的解决
Apr 24 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 Python
基于Python绘制美观动态圆环图、饼图
Jun 03 Python
Python爬虫获取豆瓣电影并写入excel
Jul 31 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+SQL 注入攻击的技术实现以及预防办法
2010/12/29 PHP
如何使用PHP对网站验证码进行破解
2015/09/17 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
JS的参数传递示例介绍
2014/02/08 Javascript
javascript判断chrome浏览器的方法
2014/03/26 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
vue路由拦截及页面跳转的设置方法
2018/05/24 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
2018/11/25 Javascript
vue车牌号校验和银行校验实战
2019/01/23 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
JavaScript实现简单动态表格
2020/12/02 Javascript
Python元字符的用法实例解析
2018/01/17 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
python和php哪个更适合写爬虫
2020/06/22 Python
使用sublime text3搭建Python编辑环境的实现
2021/01/12 Python
大专应届生个人简历的自我评价
2013/10/15 职场文书
委托培训协议书
2014/11/17 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
2016年质量月活动总结报告
2016/04/05 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android