2016-06-08 31 views
4

由于小GPU内存(1Gb),我遇到了一些问题,问题是,现在我选择batch_size通过反复试验,似乎即使内存大小打印在行Memory required for data:行日志小于1Gb它可能会失败。Caffe:如何选择适合内存的最大可用批量大小?

所以我的问题是:

  1. 如何自动选择maximun菱批量大小,能适合在GPU内存?
  2. 有更大的batch_size总是会更好吗?
  3. 如何计算网络部署期间训练和正向传递所需的峰值内存?

UPDATE: 我也检查了code,但我不知道什么是top_vecs_

回答

2

如果需要通过数据线存储在日志打印内存大小小于你的总GPU内存,它仍然可能会失败,因为其他程序正在使用某些GPU内存。在linux下,你可以使用nvidia-smi命令来查看统计信息。对我来说Ubuntu图形环境使用97MB。

  1. 没有办法说咖啡自动做它。
  2. 是的,用于培训。它在一次处理中处理更多的数据,并且它将收敛在较少的时期,因为SGD将在每次迭代时产生更多与GD相似的结果。对于部署它不是关键
  3. 这可以给你大致的了解如何计算这个:http://cs231n.github.io/convolutional-networks/
+0

是的,我已经读过这篇文章,但我的问题是更多的来自Caffe实现特定的,所以我想知道如何来自Caffe管理它的记忆。 – mrgloom

相关问题