model.train_on_batch介绍

本文介绍了Keras中的train_on_batch API,它允许更精细的自定义训练过程,适合需要分步训练的模型如GAN。train_on_batch可以方便地处理单个或多个输入、输出,支持样本权重和类别权重,并能灵活应用于多GPU训练和多样数据加载。通过实例展示了如何使用该API进行模型训练,包括单输出和多输出模型的情况。
摘要由CSDN通过智能技术生成

大部分使用 keras 的同学使用 fit() 或者 fit_generator() 进行模型训练, 这两个 api 对于刚接触深度学习的同学非常友好和方便,但是由于其是非常深度的封装,对于希望自定义训练过程的同学就显得不是那么方便(从 torch 转 keras 的同学可能更喜欢自定义训练过程),而且,对于 GAN 这种需要分步进行训练的模型,也无法直接使用 fit 或者 fit_generator 直接训练的。因此,keras 提供了 train_on_batch 这个 api,对一个 mini-batch 的数据进行梯度更新。

总结优点如下:

  • 更精细自定义训练过程,更精准的收集 loss 和 metrics
  • 分步训练模型-GAN的实现
  • 多GPU训练保存模型更加方便
  • 更多样的数据加载方式,结合 torch dataloader 的使用
     

原型:

y_pred = Model.train_on_batch(
    x,
    y=None,
    sample_weight=None,
    class_weight=None,
    reset_metrics=True,
    return_dict=False,
)

参数详解:

  •     x:模型输入,单输入就是一个numpy数组,多输入就是numpy数组的列表
  •     y:模型标签,单输出就是一个numpy数组,多输出就是numpy数组的列表
  •     sample_weight:mini_batch中每个样本对应的权重,形状(batch_size࿰
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值