keras中的History对象用法


Posted in Python onJune 19, 2020

keras中的fit_generator和fit函数均返回History对象,那么History怎么用呢?事实上History对象已经记录了运行输出。在了解之前,我们甚至自己定义回调函数记录损失和准确率等。

相关keras源码位于网址:

class History(Callback):
 """Callback that records events into a `History` object.
 This callback is automatically applied to
 every Keras model. The `History` object
 gets returned by the `fit` method of models.
 """

 def on_train_begin(self, logs=None):
  self.epoch = []
  self.history = {}

 def on_epoch_end(self, epoch, logs=None):
  logs = logs or {}
  self.epoch.append(epoch)
  for k, v in logs.items():
   self.history.setdefault(k, []).append(v)

可以看出History类对象包含两个属性,分别为epoch和history,epoch为训练轮数。

根据compile参数metrics,history包含不同的内容。比如,当某一次metrics=['accuracy']时,运行如下部分代码我们可以看出,history字典类型,包含val_loss,val_acc,loss,acc四个key值。

####省略若干
history = model.fit_generator(
  mp.train_flow,
  steps_per_epoch=32,
  epochs=3,
  validation_data=mp.test_flow,
  validation_steps=32)
print(history.history)
print(history.epoch)

print(history.history['val_loss'])

{‘val_loss': [0.4231100323200226, 0.3713115310668945, 0.3836631367206573], ‘val_acc': [0.815, 0.84, 0.83], ‘loss': [0.8348453622311354, 0.5010451343324449, 0.4296100065112114], ‘acc': [0.630859375, 0.7509920634920635, 0.783203125]}
[0, 1, 2]
[0.4231100323200226, 0.3713115310668945, 0.3836631367206573]

补充知识:在ipython中使用%history快速查找历史命令

1、输出所有历史记录,且带有序号

%history -n

 150: %cpaste
 151: %cpaste
 152: print(r">>>>>>>>>")
 153: print(r'>>>>>>>>>')
 154: print(r'>>>>>>>>><')
 155: print(r'>')
 156: print(r'>>')
 157: print(r'>>>')
 ...

2、按序号,查找某些序号区间的历史纪录

%history -n 168-170 178 185-190
 
 168: planets
 169:
for method, group in planets.groupby('method'):
 print(f'{method:30s} method={group}')
 170:
for method, group in planets.groupby('method'):
 print(f'{method:30s} method={group.shape}')
 178: %history?
 185: %history -u
 186: %history -n -u
 187: ?%history
 188: %history -g method
 189: %history -g method print
 190: %history -g for method,

3、模糊查找

%history -g print*metho*

 120:
for method, group in planets.groupby('method'):
 print(f"{method:30s} shape={groupe.shape}")
 121:
for method, group in planets.groupby('method'):
 print(f"{method:30s} shape={group.shape}")
 169:
for method, group in planets.groupby('method'):
 print(f'{method:30s} method={group}')
 170:
for method, group in planets.groupby('method'):
 print(f'{method:30s} method={group.shape}')
 182:
for method, group in planets.groupby('method'):
  print(f"{method:30s shape=group.shape}")
 198: %history -g print*metho*

以上这篇keras中的History对象用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的迭代器漫谈
Feb 03 Python
Python中的列表知识点汇总
Apr 14 Python
python黑魔法之编码转换
Jan 25 Python
python增加矩阵维度的实例讲解
Apr 04 Python
Django REST framework 分页的实现代码
Jun 19 Python
python 判断三个数字中的最大值实例代码
Jul 24 Python
python科学计算之numpy——ufunc函数用法
Nov 25 Python
Flask中endpoint的理解(小结)
Dec 11 Python
Python3 利用face_recognition实现人脸识别的方法
Mar 13 Python
浅析Python 序列化与反序列化
Aug 05 Python
python中pow函数用法及功能说明
Dec 04 Python
Python3爬虫ChromeDriver的安装实例
Feb 06 Python
python中rc1什么意思
Jun 19 #Python
解决keras backend 越跑越慢问题
Jun 18 #Python
Python基于Twilio及腾讯云实现国际国内短信接口
Jun 18 #Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
Jun 18 #Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
Jun 18 #Python
Win10下用Anaconda安装TensorFlow(图文教程)
Jun 18 #Python
python中tab键是什么意思
Jun 18 #Python
You might like
PHP4实际应用经验篇(1)
2006/10/09 PHP
解析如何去掉CodeIgniter URL中的index.php
2013/06/25 PHP
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
学习YUI.Ext 第二天
2007/03/10 Javascript
javascript操作文本框readOnly
2007/05/15 Javascript
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
2016/10/10 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
2017/05/04 jQuery
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
2019/09/03 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
移动端JS实现拖拽两种方法解析
2020/10/12 Javascript
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
Python如何实现MySQL实例初始化详解
2017/11/06 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
Centos 升级到python3后pip 无法使用的解决方法
2018/06/12 Python
django前端页面下拉选择框默认值设置方式
2020/08/09 Python
Sentry错误日志监控使用方法解析
2020/11/12 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
24岁生日感言
2014/01/13 职场文书
法人授权委托书
2014/04/03 职场文书
2014年母亲节寄语
2014/05/07 职场文书
环保志愿者活动总结
2014/06/27 职场文书
2014年客服工作总结范文
2014/11/13 职场文书
原告代理词范文
2015/05/25 职场文书
Python道路车道线检测的实现
2021/06/27 Python