2017-07-16 33 views
0

我正在使用GPU训练深度神经网络。如果我制作过大的样本或太大的批次或太深的网络,我会不时发现内存不足的错误。在这种情况下,有时可以制造更小的批次并继续训练。如何自动选择批量大小以适应GPU?

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

UPDATE

如果我普林网络摘要,它显示的 “可训练参数” 号码。我不能从这个数值估算吗?例如,采取这种方式,乘以批量大小,双重梯度等?

回答

1

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

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

0

我觉得萨尔瓦多在这里表示,这是不可能的分析计算最适合批量大小,但是,因为所有的东西都在ML,它只是另一个超参数,可以添加到您的网格搜索是自动计算。简单地评估你的模型的损失或准确性(但你衡量性能),给出几个批量大小的最佳和最稳定(最小可变)度量,比如一些2的幂,例如64,256,1024等。然后继续使用最好的找到批量大小。请注意,批量大小可以取决于您的模型的体系结构,机器硬件等。例如,如果您将建模从本地PC移动到某个云计算引擎(GCP,AWS,Azure,...),则批量大小为对于你的电脑来说太大了,RAM变得很容易适用于几乎无限的RAM/CPU/GPU(注意成本)。

相关问题