keras callback中的stop_training

Posted weiyinfu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keras callback中的stop_training相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

keras.callbacks的ModelCheckpoint参数

小白学习keras教程九keras 使用GPU和Callbacks模型保存

早停 tf.keras.callbacks.EarlyStopping() 详解TensorFlow2入门手册

TensorFlow-keras fit的callbacks参数,定值保存模型

TensorFlow2 入门指南 keras.callbacks 回调使用方法

TensorFlow2 入门指南 | 18 keras.callbacks 回调使用方法