在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模块学习 re 正则表达式
May 19 Python
跟老齐学Python之眼花缭乱的运算符
Sep 14 Python
12步入门Python中的decorator装饰器使用方法
Jun 20 Python
Python random模块用法解析及简单示例
Dec 18 Python
PyQt5每天必学之QSplitter实现窗口分隔
Apr 19 Python
python for循环remove同一个list过程解析
Aug 14 Python
python学生信息管理系统实现代码
Dec 17 Python
Python无头爬虫下载文件的实现
Apr 02 Python
Python通过两个dataframe用for循环求笛卡尔积
Apr 29 Python
python 数据分析实现长宽格式的转换
May 18 Python
pytorch查看模型weight与grad方式
Jun 24 Python
Python结合Window计划任务监测邮件的示例代码
Aug 05 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 的几个配置文件函数
2006/12/21 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
php格式化json函数示例代码
2016/05/12 PHP
php 运算符与表达式详细介绍
2016/11/30 PHP
Smarty模板语法详解
2019/07/20 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
一个可拖拽列宽表格实例演示
2012/11/26 Javascript
去掉gridPanel表头全选框的小例子
2013/07/18 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
跟我学习javascript的undefined与null
2015/11/17 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
深入分析javascript中的错误处理机制
2016/07/17 Javascript
javascript循环链表之约瑟夫环的实现方法
2017/01/16 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
Vue实现导出excel表格功能
2018/03/30 Javascript
Python自定义scrapy中间模块避免重复采集的方法
2015/04/07 Python
Python学生成绩管理系统简洁版
2020/04/05 Python
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
Python如何实现转换URL详解
2019/07/02 Python
Python 保持登录状态进行接口测试的方法示例
2019/08/06 Python
pytorch 模型的train模式与eval模式实例
2020/02/20 Python
关于python中的xpath解析定位
2020/03/06 Python
Python3爬虫中pyspider的安装步骤
2020/07/29 Python
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
英国标准协会商店:BSI Shop
2019/02/25 全球购物
中西医专业毕业生职业规划书
2014/02/24 职场文书
小学校长竞聘演讲稿
2014/05/16 职场文书
邀请函格式范文
2015/02/02 职场文书
会议主持词开场白
2015/05/28 职场文书
素质拓展训练感想
2015/08/07 职场文书