在合理范围内,增大 Batch_Size 有何好处?
①内存利用率提高了,大矩阵乘法的并行化效率提高。
②跑完一次 epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快。
③在一定范围内,一般来说 Batch_Size 越大,其确定的下降方向越准,引起训练震荡越小。
盲目增大 Batch_Size 有何坏处?
①内存利用率提高了,但是内存容量可能撑不住了。
②跑完一次 epoch(全数据集)所需的迭代次数减少,要想达到相同的精度,其所花费的时间大大增加了,从而对参数的修正也就显得更加缓慢。
③Batch_Size 增大到一定程度,其确定的下降方向已经基本不再变化
GPU对2的幂次的batch可以发挥更佳的性能,因此设置成16、32、64、128…时往往要比设置为整10、整100的倍数时表现更优