为了账号安全,请及时绑定邮箱和手机立即绑定

batch_size 和运行时间的关系

batch_size 和运行时间的关系

阿晨1998 2022-05-19 19:00:22
以前我认为较小的 batch_size 会导致更快的训练,但在 keras 的实践中,我收到了相反的结果,即更大的 batch_size 会使训练更快。我正在实现一个示例代码,通过增加batch_size 的数量,训练变得更快。这与我以前普遍认为的相反(较小的 batch_size 会导致更快的训练),这是示例代码:# fit modelimport timestart = time.time()history = model.fit(trainX, trainy, validation_data=(testX, testy), epochs=1000,batch_size= 500 , verbose=0)end = time.time()elapsed = end - startprint(elapsed)我将 500、250、50 和 10 分别作为 batch_size,我希望较低的 batch_size 训练速度更快,但是 batch_size 500 的结果是 6.3 秒,250 个结果是 6.7 秒,50 个结果是 28.0 秒,10 个结果是 140.2 秒! !!
查看完整描述

2 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

这是有道理的。我不知道您使用的是什么模型,但 Keras 进行了高度优化,利用矢量化进行快速矩阵运算。因此,如果您将 5000 个样本的数据拆分为 500 个批量大小,具有 1000 个 epoch,则模型本质上是 (5000/500) x 1000 次迭代。那是 10 000 现在,如果您对 10 的批量大小执行此操作,则有 (5000/10) x 1000 次迭代。那是 500 000。通过模型进行更多迭代,包括向前和向后。



查看完整回答
反对 回复 2022-05-19
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

对于硬件,GPU 非常擅长并行计算,特别是矩阵运算发生在前向和后向传播中。同样的事情发生在软件方面,tensorflow 和其他 DL 库优化了矩阵运算。

因此,更大的批量大小使 GPU 和 DL 库能够“优化更多的矩阵计算”,从而加快训练时间。


查看完整回答
反对 回复 2022-05-19
  • 2 回答
  • 0 关注
  • 483 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号