keras.fit epoch回调函数详解

在每个training/epoch/batch结束时,如果我们想执行某些任务,例如模型缓存、输出日志、计算当前的auc等等,Keras中的callback就派上用场了。

Example 记录每个batch的损失函数值


import keras
 
# 定义callback类
class MyCallback(keras.callbacks.Callback):
    def on_train_begin(self, logs={}):
        self.losses = []
        return

    def on_batch_end(self, batch, logs={}): # batch 为index, logs为当前batch的日志acc, loss...
        self.losses.append(logs.get('loss')) 
        return

# 定义模型model
...
...

# 调用callback
cb = MyCallback()

# 训练模型
model.fit(x_train, y_train, batch_size=32, epochs=10, callbacks=[cb])

# 查看callback内容
cb.losses

如上述例子,我们可以继承keras.callbacks.Callback来定义自己的callback,只需重写其中的6个方法即可

  • on_train_begin
  • on_train_end
  • on_epoch_begin
  • on_epoch_end
  • on_batch_begin
  • on_batch_end

可在这6个方法中定义自己想要的属性,通过self.model可以访问模型本身,self.params可以访问训练参数。

可能有用的属性

  • self.validation_data validate数据集
  • self.validation_data[0] 为X
  • self.validation_data[1] 为y
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值