Caffe:如何选择可以容纳在内存中的最大可用批量大小?
Posted
技术标签:
【中文标题】Caffe:如何选择可以容纳在内存中的最大可用批量大小?【英文标题】:Caffe: how to choose maximum avalible batch size that can fit in memory? 【发布时间】:2016-10-08 11:44:14 【问题描述】:由于 GPU 内存 (1Gb) 较小,我遇到了一些问题,问题是现在我通过反复试验选择了 batch_size
,即使在日志中按行打印的内存大小 Memory required for data:
似乎小于 1Gb 它可能会失败。
所以我的问题是:
-
如何自动选择适合 GPU 内存的最大可用批量大小?
batch_size
越大越好吗?
如何计算网络部署期间训练和前向传递所需的峰值内存?
更新: 我还检查了 code ,但我不确定 top_vecs_ 是什么
【问题讨论】:
【参考方案1】:如果日志中按行打印的内存大小 数据所需的内存小于您的总 GPU 内存,它仍然可能失败,因为其他程序正在使用您的一些 GPU 内存。在 linux 下,您可以使用 nvidia-smi 命令来检查统计信息。对我来说 Ubuntu 图形环境使用 97MB。
-
没有办法说 caffe 可以自动完成。
是的,用于培训。它一次处理更多数据,并且会在更少的时期内收敛,因为 SGD 每次迭代都会产生与 GD 更相似的结果。对于部署而言,这并不重要
这可以让你大致了解如何计算这个:http://cs231n.github.io/convolutional-networks/
【讨论】:
是的,我已经阅读了这篇文章,但我的问题是更具体的 Caffe 实现,所以我想知道 Caffe 如何管理它的内存。以上是关于Caffe:如何选择可以容纳在内存中的最大可用批量大小?的主要内容,如果未能解决你的问题,请参考以下文章