小编Emi*_*mil的帖子

您如何在Keras上使用多个GPU训练GAN?

存在三个主要挑战:a)如何保存和加载优化器状态,b)如何将多个GPU与嵌套模型一起使用,请参见下文,以及c)如何创建工作流程以优化GPU和CPU利用率?

语境

我们包含三个部分:

  1. 鉴别者
  2. 发电机,以及
  3. 既具有鉴别器又具有生成器的GAN。

优化器状态

由于鉴别器包含在GAN中,在训练期间也需要单独使用它们-如何保存和加载GAN?现在,我分别保存了生成器和鉴别器,并针对每个训练情节重新编译了GAN,但是这样我失去了优化器状态。

多个GPU

API如下所示:

from keras.utils import multi_gpu_model
parallel_model = multi_gpu_model(model, gpus=8)
Run Code Online (Sandbox Code Playgroud)

这里的挑战与优化器一样。由于鉴别器包含在GAN中,因此您不能将multi_gpu_model标识符同时应用于鉴别器和GAN。您可以multi_gpu_model在创建GAN之前向鉴别器和生成器中都添加a ,但是根据我的经验,它不能很好地扩展,并且会导致GPU利用率不佳。

GPU和CPU利用率

可以使用多重处理对数据进行预处理和排队。由于multi_gpu_modelAPI不支持GAN,因此您需要经常合并权重并在CPU和GPU之间进行跳转。因此,我还没有找到一种利用GPU和CPU的干净方法。

python deep-learning keras tensorflow

5
推荐指数
1
解决办法
972
查看次数

标签 统计

deep-learning ×1

keras ×1

python ×1

tensorflow ×1