zoukankan      html  css  js  c++  java
  • 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当然也继承了这样的特点。

  • 相关阅读:
    hdu 3790 最短路径问题
    hdu 2112 HDU Today
    最短路问题 以hdu1874为例
    hdu 1690 Bus System Floyd
    hdu 2066 一个人的旅行
    hdu 2680 Choose the best route
    hdu 1596 find the safest road
    hdu 1869 六度分离
    hdu 3339 In Action
    序列化和反序列化
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/9874195.html
Copyright © 2011-2022 走看看