深度学习顺序批处理与并行批处理对比及批输入展平的影响咨询
问题1:顺序批处理与并行批处理的核心差异
- 计算模式差异:顺序批处理是按顺序逐个处理批次内的单个样本,比如batch size为4时,会先跑完
[1,512]维度的第一个样本,再跑第二个,全程串行执行;并行批处理是利用GPU等硬件的多核并行架构,同时处理批次内的所有4个样本,同一步算子计算可以覆盖全部样本。 - 资源利用差异:顺序批处理无法占满硬件的多核计算资源,GPU利用率通常低于10%,大部分核心处于空转状态;并行批处理可以把计算核心的利用率提升到70%以上,算力浪费极少。
- 耗时差异:同样处理4个样本,顺序批处理的耗时接近单个样本处理耗时的4倍;并行批处理的耗时仅比单个样本处理耗时高10%以内,额外开销只有少量任务调度成本。
- 训练效果差异:如果逐样本更新梯度,顺序批处理对应随机梯度下降(SGD),梯度噪声大,收敛过程波动明显;并行批处理会先计算批次内所有样本的平均梯度再更新权重,梯度更稳定,收敛平滑度更高。
问题2:batch+特征维度整体展平操作的相关影响
逻辑意义
把
[4,512]的输入沿batch和特征维度整体展平为[2048],逻辑上等同于把4个独立样本的特征完全拼接为一个单样本的超长特征,模型会默认这2048个维度属于同一个样本的连续特征,完全抹除了4个样本之间的边界。
运行速度影响
不会有显著提升,甚至大概率会变慢。目前主流深度学习框架(PyTorch、TensorFlow等)对[batch, feature]格式的二维张量计算做了高度优化,所有算子原生支持batch维度的并行计算,展平操作不会减少总计算量。反而如果后续层的输入维度从512变成2048,对应参数矩阵的参数量会直接翻4倍,总计算量大幅提升,实际运行速度会更慢。
模型性能影响
会严重降低模型性能,甚至完全无法收敛。一方面操作完全破坏了样本的独立性,原本模型需要学习单个512维特征和对应标签的映射关系,展平后模型拿到的是4个样本的混合特征,无法建立样本和标签的对应关系;另一方面如果原始512维特征本身存在局部结构(比如是序列、图像提取的特征),展平后单样本内部结构和跨样本边界完全混淆,模型无法提取到有效特征。
内容的提问来源于stack exchange,提问作者Aleph
相关产品推荐
相关产品推荐

