在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实现2048小游戏
Mar 30 Python
简单上手Python中装饰器的使用
Jul 12 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
Sep 08 Python
python实现分页效果
Oct 25 Python
django开发教程之利用缓存文件进行页面缓存的方法
Nov 10 Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 Python
Python中的TCP socket写法示例
May 11 Python
Tesserocr库的正确安装方式
Oct 19 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 Python
Python解析命令行读取参数之argparse模块
Jul 26 Python
Python tkinter三种布局实例详解
Jan 06 Python
实例讲解Python 迭代器与生成器
Jul 08 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
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
PHP7新增函数
2021/03/09 PHP
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
JavaScript事件循环及宏任务微任务原理解析
2020/09/02 Javascript
JavaScript实现滑块验证解锁
2021/01/07 Javascript
[53:43]VP vs NewBee Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
利用Python实现手机短信监控通知的方法
2019/07/22 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
python字典的值可以修改吗
2020/06/29 Python
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
ECHT官方网站:男女健身服
2020/02/14 全球购物
生产管理的三大手法
2013/11/11 职场文书
五年级音乐教学反思
2014/02/06 职场文书
高中军训第一天感言
2014/03/06 职场文书
我爱我家教学反思
2014/05/01 职场文书
购房委托书
2014/10/15 职场文书
2014年作风建设工作总结
2014/10/29 职场文书
2015年暑期社会实践活动总结
2015/03/27 职场文书
总账会计岗位职责
2015/04/02 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书