And*_*Gis 16 machine-learning neural-network gradient-descent deep-learning keras
有时我遇到一个问题:
OOM在分配形状的张量时
EQ
OOM在分配形状的张量时(1024,100,160)
1024是我的批量大小,我不知道剩下的是什么.如果我减少批量大小或模型中的神经元数量,它运行正常.
是否有基于模型和GPU内存计算最佳批量大小的通用方法,因此程序不会崩溃?
编辑
由于我的问题可能看起来不清楚,让我按照他的方式说:我希望我的模型可以使用最大的批量大小,这将适合我的GPU内存并且不会使程序崩溃.
编辑2
对于那些因为过于宽泛而投票结束这个问题的人:这个问题到底有多宽?有一些算法可以选择一部分数据放入GPU内存.它显然是不完美的,因为数据有时会超过GPU内存.询问算法如何工作,以防止随机崩溃,对我来说似乎很合理.
des*_*aut 14
来自Goodfellow等人最近的深度学习书,第8章:
迷你尺寸通常由以下因素驱动:
- 较大的批次提供了更准确的梯度估计,但回报率低于线性.
- 多核架构通常未被极小批量利用.这促使使用一些绝对最小批量,在此之下,处理小批量的时间没有减少.
- 如果批处理中的所有示例都要并行处理(通常是这种情况),则内存量会随批量大小而变化.对于许多硬件设置,这是批量大小的限制因素.
- 某些类型的硬件通过特定大小的阵列实现更好的运行时间.特别是在使用GPU时,通常2个批量大小的电源可以提供更好的运行时间.2个批量大小的典型功率范围从32到256,有时大型模型尝试16个.
- 小批量可以提供正规化效果(Wilson和Martinez,2003),可能是由于它们为学习过程增加了噪音.对于批量大小为1的广义误差通常是最佳的.具有如此小批量的训练可能需要较小的学习率来维持稳定性,因为梯度估计的方差很大.由于需要制定更多步骤,总运行时间可能非常高,这是因为学习率降低,并且因为需要更多步骤来观察整个训练集.
实际上通常意味着" 在2的幂中,越大越好,只要批量适合你的(GPU)内存 ".
您可能还想在Stack Exchange中查阅几篇好帖子:
请记住Keskar等人的论文." 在深学习大批量培训:推广Gap和尖最小值 ",通过以上几个职位的报价,已经收到了一些异议通过深学习社区的其他研究人员可敬.
希望这可以帮助...
更新(2017年12月):Yoshua Bengio&团队发表了一篇新论文,"影响Minima的三个因素"(2017年11月); 值得一读的是,它报告了学习率和批量大小之间相互作用的新理论和实验结果.
ila*_*lan 10
您可以使用以下方法估算最大批量大小:
最大批量大小=可用GPU内存字节数/ 4 /(张量大小+可训练参数)
使用 pytorchsummary (pip install) 或 keras (builtin) 提供的摘要。
例如
from torchsummary import summary
summary(model)
.....
.....
================================================================
Total params: 1,127,495
Trainable params: 1,127,495
Non-trainable params: 0
----------------------------------------------------------------
Input size (MB): 0.02
Forward/backward pass size (MB): 13.93
Params size (MB): 4.30
Estimated Total Size (MB): 18.25
----------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
您放入批处理中的每个实例都需要在内存中进行完整的向前/向后传递,您的模型只需要一次。人们似乎更喜欢 2 的幂的批量大小,可能是因为 GPU 上的自动布局优化。
不要忘记在增加批量大小时线性增加学习率。
假设我们手头有一台配备 16 GB 内存的 Tesla P100。
(16000 - model_size) / (forward_back_ward_size)
(16000 - 4.3) / 18.25 = 1148.29
rounded to powers of 2 results in batch size 1024
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17140 次 |
| 最近记录: |