码迷,mamicode.com
首页 > 其他好文 > 详细

keras callback中的stop_training

时间:2018-10-30 00:59:27      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:就会   array   net   选择   fit   不同   top   setattr   扩展性   

keras这个框架简洁优美,设计上堪称典范。而tensorflow就显得臃肿庞杂,混乱不清。当然,keras的周边部件比如callbacks、datasets、preprocessing有许多过度设计的感觉,但是keras的核心是好的,这个设计完美的核心使得这个系统可扩展性极强、代码逻辑性极强。然而,其中因为依旧有一些小细节,一旦理解不透,就会对keras的原理有“神奇”之感,比如本文接下来要讲的这个问题:callbacks中的stop_training。

keras的Model#fit()函数接受一个callback列表,在训练的不同阶段会触发callback的不同操作。其中这些阶段包括:

  • 训练开始和结束
  • 批次开始和结束
  • 轮次开始和结束

callback列表中的元素都是Callback的派生类的实例。每个Callback派生类都可以选择性的重写以上六个函数。

其中callback中常用的一种操作是:callback_model.stop_training=True or False

callback_model是每个Callback实例的成员变量,它对应的类型也就是Model。

但是Model并没有stop_training这个成员变量,Model继承自Network,Network也没有这个成员变量。stop_training这个属性唯一出现的两个地方就是:callbacks.py中定义回调接口的时候,train_array.py执行训练操作的时候。

这个属性仿佛从天而降、无中生有。

实际上,Model的父类Network实现了__setattr__函数,这样就可以随意往Network上“悬挂”变量了,Model当然也继承了这样的特点。

keras callback中的stop_training

标签:就会   array   net   选择   fit   不同   top   setattr   扩展性   

原文地址:https://www.cnblogs.com/weiyinfu/p/9874195.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!