我目前正在阅读Keras 的作者 Francois Chollet 的Deep Learning with Python,在他对 Mini-batch 的定义之一中,他解释说 2 的幂batch_size是由于 gpu 中的内存分配/有人可以详细说明一下吗?
小批量或批量——模型同时处理的一小组样本(通常在 8 到 128 个之间)。样本数通常是 2 的幂,以方便 GPU 上的内存分配。训练时,小批量用于计算应用于模型权重的单个梯度下降更新。
我目前正在阅读Keras 的作者 Francois Chollet 的Deep Learning with Python,在他对 Mini-batch 的定义之一中,他解释说 2 的幂batch_size是由于 gpu 中的内存分配/有人可以详细说明一下吗?
小批量或批量——模型同时处理的一小组样本(通常在 8 到 128 个之间)。样本数通常是 2 的幂,以方便 GPU 上的内存分配。训练时,小批量用于计算应用于模型权重的单个梯度下降更新。
它不仅在 GPU 上,您还希望将 2 的小幂作为 CPU 的约数。
原因是尽可能在 GPU(或 SIMD 寄存器)上分配处理器。这与扭曲大小和 GPU 供应商提供的最大块大小直接相关,
另请参阅SO 上的此线程,其中经纱尺寸是什么以及它与最佳入住率的关系。