【问题标题】:CNTK: Data parallel training in Python without using 1-bit SGDCNTK:不使用 1 位 SGD 的 Python 数据并行训练
【发布时间】:2023-04-11 10:45:01
【问题描述】:

我在这里查看文档: https://github.com/Microsoft/CNTK/wiki/Multiple-GPUs-and-machines

根据文本:“Data-Parallel SGD 可以使用或不使用 1bit-SGD。”

但是,在本文档之后,只有一个使用 1-bit SGD 的数据并行相关部分:“Data-Parallel Training with 1-bit SGD”,代码如下:

distributed_learner = distributed.data_parallel_distributed_learner(
    learner = learner,
    num_quantization_bits = 1,
    distributed_after = distributed_after)  # warm start: don't use 1-bit SGD for first epoch

如果我选择不使用 1-bit SGD(跳过上述调用中的相关参数),我认为我仍然应该获得 data_parallel_distributed_learner 的并行化优势。你能确认是这样吗?

谢谢

【问题讨论】:

    标签: python cntk


    【解决方案1】:

    num_quantization_bits可以设置为32,直接同步并行学习。

    您应该注意,根据您的网络,将num_quantization_bits 设置为 32 可能会减慢您的训练速度。

    如果您的 CNTK 构建支持 NCCL,那么使用 32 位不会减慢太多。您应该注意 1 位 SGD 本身的计算成本(用于量化)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多