在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 相关文章推荐
web.py在模板中输出美元符号的方法
Aug 26 Python
python中base64加密解密方法实例分析
May 16 Python
解决python爬虫中有中文的url问题
May 11 Python
Python subprocess库的使用详解
Oct 26 Python
python游戏开发之视频转彩色字符动画
Apr 26 Python
python 如何将数据写入本地txt文本文件的实现方法
Sep 11 Python
解决Numpy中sum函数求和结果维度的问题
Dec 06 Python
Python实现遗传算法(二进制编码)求函数最优值方式
Feb 11 Python
Python基于正则表达式实现计算器功能
Jul 13 Python
pytest进阶教程之fixture函数详解
Mar 29 Python
总结Python连接CS2000的详细步骤
Jun 23 Python
Python内置包对JSON文件数据进行编码和解码
Apr 12 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
用户的详细注册和判断
2006/10/09 PHP
PHP合并静态文件详解
2014/11/14 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
jQuery前端开发35个小技巧
2016/05/24 Javascript
Angularjs处理页面闪烁的解决方法
2017/03/09 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
vue之数据交互实例代码
2017/06/20 Javascript
Node.js服务器开启Gzip压缩教程
2017/08/11 Javascript
JS 实现百度搜索功能
2018/02/01 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
微信小程序封装多张图片上传api代码实例
2019/12/30 Javascript
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
python杀死一个线程的方法
2015/09/06 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
浅谈python脚本设置运行参数的方法
2018/12/03 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
python为什么会环境变量设置不成功
2020/06/23 Python
Python操作MySQL数据库的示例代码
2020/07/13 Python
CSS3 box-shadow属性实例详解
2020/06/19 HTML / CSS
在线吉他课程,学习如何弹吉他:Fender Play
2019/02/28 全球购物
Java的类与C++的类有什么不同
2014/01/18 面试题
2014年教师党员公开承诺书
2014/05/28 职场文书
党的群众路线教育实践活动专题组织生活会发言材料
2014/10/17 职场文书
教师年度考核个人总结
2015/02/12 职场文书
演讲开场白台词大全
2015/05/29 职场文书
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电