训练神经网络模型过程中batch_size,steps_per_epoch,epochs意义


batch_size:批大小。batch_size是计算效率和内存容量之间的平衡参数。若为高性能GPU,可以设置更大的batch_size值。神经网络训练过程中,随机梯度下降时,使用梯度的数量,即每次使用batch_size个数据样本来训练、更新权重参数。1次迭代等于使用batch_size个样本训练一次。
如果batch_size过小,训练数据就会非常难收敛,导致欠拟合。
增大batch_size,处理速度加快,但对计算设备的内存需求也相应增大。

 


epochs:所有的训练样本完成一次Forword运算以及一次BP运算。所有图像的训练轮次,即使用所有样本训练一遍。一个epoch是所有训练样本的一轮正向传递和一轮反向传递。
例如,训练数据集总共有1000个样本。若batch_size=10,那么训练完全体样本集需要100次迭代,1次epoch。

 


steps_per_epoch:一轮epoch包含的步数(每一步是batch_size个数据送入),使用TensorFlow数据Tensor输入张量进行训练时,默认None自动分割,即数据集样本数/batch_size。
把训练样本的数量除以batch_size批大小得出。例如,总共有100张训练图片,且batch_size批大小为50,则steps_per_epoch值为2。
batch_size=全体数据集大小 / steps_per_epoch。如果设置batch_size的大小,那么在fit_generator时 , steps_per_epoch = len(x_train) // (batch_size*epochs)
steps_per_epoch就是对于下一轮的epoch开始之前,调用generator产生准备数据的次数,generator必须每次返回batch_size个training样本,那么:
steps_per_epoch = total_samples//(batch_size)
这里的//是整除,也可以使用numpy.ceil的函数向上取整,这样做的目的是为了舍弃最后不满足batch_size的数据。

  • 9
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值