【问题标题】:What is batch size in Caffe or convnetsCaffe 或 convnets 中的批量大小是多少
【发布时间】:2016-02-14 13:21:53
【问题描述】:

我认为批量大小仅用于性能。批次越大,同时计算更多图像来训练我的网络。但我意识到,如果我改变批量大小,我的净准确度会变得更好。所以我不明白批量大小是什么。有人可以解释一下什么是批量大小吗?

【问题讨论】:

  • 据我所知,批量大小是机器使用预取数据进行计算时从硬盘驱动器检索的图像大小。通过这种技术,Caffe 以某种方式尝试补偿从硬盘驱动器的读取时间。
  • 但是,如果我改变批量大小,我会得到更好的准确性。没看懂。

标签: machine-learning neural-network deep-learning conv-neural-network caffe


【解决方案1】:

Caffe 使用Stochastic-Gradient-Descend (SGD) 进行训练:也就是说,在每次迭代时,它都会根据训练数据计算参数的(随机)梯度,并沿梯度方向移动(=更改参数)。
现在,如果你写出梯度 w.r.t 的方程。训练数据您会注意到,为了准确地计算梯度,您需要在每次迭代时评估所有您的训练数据:这是令人望而却步的耗时,尤其是当训练数据越来越大时。
为了克服这个问题,SGD 以随机方式通过在每次迭代中仅采样一小部分训练数据来近似精确梯度。这小部分是批次。
因此,batch size 越大,每次迭代的梯度估计就越准确。

TL;DR:批量大小会影响每次迭代时估计梯度的准确性,改变批量大小因此会影响优化所采用的“路径”,并可能改变训练过程的结果。


更新:
在 ICLR 2018 会议上展示了一项有趣的工作:
Samuel L. Smith, Pieter-Jan Kindermans, Chris Ying, Quoc V. Le Don't Decay the Learning Rate, Increase the Batch Size.
这项工作基本上涉及改变批量大小和学习率的效果。

【讨论】:

  • .@Shai - 所以batch size 应该小还是大?我多次遇到waiting for data,它影响了我的训练时间,同样的AlexNet跑了两次,一个接一个。
猜你喜欢
  • 2016-12-24
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 2020-05-20
  • 2021-08-27
  • 1970-01-01
  • 2017-09-27
  • 2014-04-09
相关资源
最近更新 更多