我想在Keras中创建自己的回调,但我不太了解如何实现。
我想做的是创建一个回调,每个n
(例如n=10
)时期调用一个函数。
根据Keras文档(https://keras.io/callbacks/),基类keras.callbacks.Callback
具有属性params
。
此属性是否包括当前纪元?如果是这样,如何使用/调用它?
还是每个n
时代都有其他好的方法来调用函数?
我想到了使用参数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/
是一个站点特别帮助我更好地了解了回调。答案 0 :(得分:0)
正如@HMK所说,on_epoch_end
和class myCallback(keras.callbacks.Callback):
def on_epoch_end(self, epoch, logs=None)
if epoch % 10 == 0:
your_func()
方法提供了当前纪元。例如,要每隔10个时间应用一个函数,您可以这样修改自定义回调:
client.on('guildMemberAdd', member => {
});