使用 CNTK 和 numpy interop 进行并行训练

Parallel training with CNTK and numpy interop

我正在训练一个自动编码器网络,每个训练样本需要读取三个图像(一个输入 RGB 图像,两个输出 RGB 图像)。使用 python 和 numpy 互操作并在我自己中读取图像文件很容易完成这项工作。

如何启用 parallel/distributed 培训?我必须使用培训课程结构吗?我必须使用图像 reader 小批量源吗?

您是否看过以下关于如何使用 mpiexec 在多台机器上并行训练的 link?

https://github.com/Microsoft/CNTK/wiki/Multiple-GPUs-and-machines#32-python

有以下选项: 1) 使用分布式学习器 + 培训课程 - 然后您需要使用 ImageDeserializer,或实现您自己的 MinibatchSource(此可扩展性仅适用于从 RC2 开始) 2)使用分布式学习器+自己编写训练循环。在这种情况下,您必须注意拆分数据(每个工作人员应该只读取与其等级相对应的图像)并且循环内的所有条件都应基于 trainer->TotalNumberOfSamples() (即如果您执行任何操作,则进行检查点)。