有三个主要的挑战:a)你如何save and load the optimizer state,b)你如何使用嵌套模型的多个GPU,见下文,和c),你如何创建一个工作流来优化GPU和CPU的利用率?在
我们有三个组成部分:
既然鉴别器包含在GAN中,而且在培训期间也需要单独使用它们-如何保存和加载GANs?现在,我分别保存生成器和鉴别器,并为每个训练片段重新编译GAN,但是这样就失去了优化器状态。在
API如下所示:
from keras.utils import multi_gpu_model
parallel_model = multi_gpu_model(model, gpus=8)
这里的挑战与优化器相同。因为鉴别器包含在GANs中,所以不能同时对鉴别器和GAN应用multi_gpu_model
。在创建GAN之前,您可以在鉴别器和生成器中添加multi_gpu_model
,但根据我的经验,它不能很好地扩展并导致GPU利用率低下。在
数据可以通过多重处理进行预处理和排队。由于multi_gpu_model
API不支持GANs,因此需要经常合并权重并在cpu和gpu之间跳转。因此,我还没有找到一个干净的方法来使用gpu和cpu。在
在发生器、鉴别器和gan的每个功能中都可以使用多gpu模型
鉴别器和gan也是如此。在
相关问题 更多 >
编程相关推荐