我试图 Build 一个gan,偶然发现一个我无法理解的问题:这些是我的步骤;代码将在最后

  • 我创建/加载所有模型:生成器,鉴别器,组合

  • 我将鉴别器设置为不可训练
    每个时期

  • 我用真实图像训练鉴别器,生成图像的鉴别器和组合模型

在步骤3b-用生成的图像训练鉴别器我需要生成器模型以生成伪图像以传递给鉴别器 .

这里出现以下错误:

Tensor(“sequential_1 / img_output / Relu:0”,shape =(?,256,256,3),dtype = float32)不是此图的元素

我使用训练模型

real_samples_loss = discriminator.fit_generator(
    image_sampler(...),
    ...other params...
)

我发现问题出现在我使用 ImageDataGenerator 时:在<1569991_ python生成器中,有罪的行是这一行:

...generate support items...
result.append(generator_model.predict([noise, bw_image])[0])
...generate data to yield

我找到的解决方案是保存图表

tf.get_default_graph()

在训练模型之前,将其传递给支持方法 .

但为什么会这样呢?我没有使用不同的图表/会话