【发布时间】:2017-04-12 15:15:56
【问题描述】:
我正在训练一个自动编码器网络,每个训练样本需要读取三张图像(一张输入 RGB 图像,两张输出 RGB 图像)。使用 python 和 numpy 互操作并读取我自己的图像文件很容易。
如何启用并行/分布式训练?我必须使用培训课程结构吗?我必须使用图像阅读器小批量源吗?
【问题讨论】:
我正在训练一个自动编码器网络,每个训练样本需要读取三张图像(一张输入 RGB 图像,两张输出 RGB 图像)。使用 python 和 numpy 互操作并读取我自己的图像文件很容易。
如何启用并行/分布式训练?我必须使用培训课程结构吗?我必须使用图像阅读器小批量源吗?
【问题讨论】:
有以下选项: 1) 使用分布式学习器 + 训练课程 - 然后您需要使用 ImageDeserializer,或实现您自己的 MinibatchSource(此可扩展性仅在 RC2 开始可用) 2)使用分布式学习器+自己编写训练循环。在这种情况下,您必须注意拆分数据(每个工作人员应该只读取与其等级相对应的图像),并且循环内的所有条件都应该基于 trainer->TotalNumberOfSamples() (即,如果你做了任何检查点)。
【讨论】:
您是否查看过以下链接,了解如何使用 mpiexec 在多台机器上并行训练?
https://github.com/Microsoft/CNTK/wiki/Multiple-GPUs-and-machines#32-python
【讨论】: