Caffe:如何选择适合内存的最大可用批量?

mrg*_*oom 5 memory gpu deep-learning caffe

由于小GPU内存(1Gb)我遇到了一些问题,问题是现在我batch_size通过反复试验选择,即使逐行打印的内存大小Memory required for data:小于1Gb也可能失败.

所以我的问题是:

  1. 如何自动选择适合GPU内存的最大可用批量大小?
  2. 拥有更大的总是更好batch_size吗?
  3. 如何计算网络部署期间培训和转发所需的峰值内存?

更新: 我也检查了代码,但我不确定什么是top_vecs_

taa*_*aas 2

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

  1. 没有办法让caffe自动完成这件事。
  2. 是的,为了训练。它一次处理更多的数据,并且会在更少的 epoch 内收敛,因为 SGD 每次迭代都会产生与 GD 更相似的结果。对于部署而言,这并不那么重要
  3. 这可以让您大致了解如何计算:http://cs231n.github.io/convolutional-networks/