python - 创建一个每 n 个 epoch 激活的 Keras 回调
问题描述
我想在 Keras 中创建自己的回调,但并不真正了解如何去做。
我想要做的是创建一个回调,每个n
(例如n=10
)epochs 调用一个函数。根据 Keras 文档 ( https://keras.io/callbacks/ ),基类keras.callbacks.Callback
有一个属性params
。
此属性是否包括当前纪元?如果是这样,如何使用/调用它?
或者有没有其他好方法可以在每个n
时期调用一个函数?
我想到了一个 Callback ,它的工作方式与keras.callbacks.ModelCheckpoint
使用参数时类似period=10
。
帮助将不胜感激。谢谢 :)
编辑:经过相当多的阅读后,我想出了这个,它似乎有效(仍然需要正确测试)
class Test1(callbacks.Callback):
def on_epoch_end(self, epochs, logs={})
if epochs == 10:
print('abc') #a random function
callb = Test1()
model = networks.compute_network(layers=layers, batch_size=batch_size, epochs=epochs, call_list=[callb])
# compute_network in my case loads all the data, trains the network, and then returns it
一个网站特别帮助我更好地理解回调:https ://keunwoochoi.wordpress.com/2016/07/16/keras-callbacks/
解决方案
正如@HMK 所说,on_epoch_begin
方法on_epoch_end
提供了当前的时代。例如,要每 10 个 epoch 应用一个函数,您可以像这样编辑自定义回调:
class myCallback(keras.callbacks.Callback):
def on_epoch_end(self, epoch, logs=None)
if epoch % 10 == 0:
your_func()
推荐阅读
- azure - 从 NSG 中删除子网
- lucene - 编写索引时 Lucene StandardAnalyzer 未转换为小写
- python-3.x - 如何从 github 操作运行 tox
- php - PhpStorm - HTML/PHP 的单独缩进流
- javascript - 拆分字符串的最佳方法?
- apache-camel - 如何从 Camel 路由生成 XML
- java - Java多线程同步块永远循环
- ruby-on-rails - Rails API 仅配置 NGINX
- php - WooCommerce Rest API - 将产品作者添加到产品列表
- spring - 如何使用我自己的多个 Web 应用程序实现 spring boot oauth2 sso?这些所有应用程序都有自己的登录页面。有可能吗?