首页 文章

如何自动选择批量大小以适应GPU?

提问于
浏览
5

我正在用GPU训练深度神经网络 . 如果我使样本太大,批量太大,或网络太深,我会出现内存不足错误 . 在这种情况下,有时可以制作较小的批次并仍然进行培训 .

是否可以计算培训所需的GPU大小并确定预先选择的批量大小?

UPDATE

如果我打印网络摘要,它会显示“可训练参数”的数量 . 我不能从这个值估算出来吗?例如,取这个,乘以批量大小,双倍渐变等?

2 回答

  • 2

    不,不可能自动执行此操作 . 因此,如果您希望尽可能多地使用批次,则需要经过大量的试验和错误才能找到合适的尺寸 .

    Stanford's CNN class提供了一些如何估计内存大小的指导,但所有建议都与CNN有关(不确定你训练什么) .

  • 0

    我认为萨尔瓦多在这里意味着不可能分析计算最适合的批量大小,但是,因为所有东西都在ML中,它只是另一个超参数,可以添加到您的网格搜索中以自动计算 . 只需评估您的模型's loss or accuracy (however you measure performance) for the best and most stable (least variable) measure given several batch sizes, say some powers of 2, such as 64, 256, 1024, etc. Then keep use the best found batch size. Note that batch size can depend on your model' s架构,机器硬件等 . 例如,如果您将建模从本地PC移动到某个 Cloud 计算引擎(GCP,AWS,Azure,...),那么批量大小太大对于你的PC来说RAM很容易适用于几乎无限的RAM / CPU / GPU(注意成本) .

相关问题