Python 从keras升级到tf.keras时DCGAN性能不佳

Python 从keras升级到tf.keras时DCGAN性能不佳,python,tensorflow,keras,deep-learning,generative-adversarial-network,Python,Tensorflow,Keras,Deep Learning,Generative Adversarial Network,更新1:删除批次标准化层时效果良好。显然,批处理规范化的工作方式在迭代之间发生了变化。仍在调查中 更新2:以下问题报告了两种可能的补救措施;在BatchNormalization中更改动量值(这对我不起作用),并在鉴别器中简单地注释掉BatchNormal。在鉴别器中注释掉BN似乎对我有用。还不知道为什么 报告类似问题的问题/链接: 问题开始: 我正在试着运行一个来自“行动中的甘斯”的DCGAN。GAN从MNIST数据集生成图像 源代码可以在这里找到 代码执行良好,生成的图像良好。 当

更新1:删除批次标准化层时效果良好。显然,批处理规范化的工作方式在迭代之间发生了变化。仍在调查中

更新2:以下问题报告了两种可能的补救措施;在BatchNormalization中更改动量值(这对我不起作用),并在鉴别器中简单地注释掉BatchNormal。在鉴别器中注释掉BN似乎对我有用。还不知道为什么

报告类似问题的问题/链接:


问题开始:

我正在试着运行一个来自“行动中的甘斯”的DCGAN。GAN从MNIST数据集生成图像

源代码可以在这里找到

代码执行良好,生成的图像良好。

当我更改源代码使其与
tf.keras
而不是
keras
兼容时,DCGAN模型生成图像的能力就变得无用了。

以下是我唯一更改的代码部分。发件人:

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

from keras.datasets import mnist
from keras.layers import Activation, BatchNormalization, Dense, Dropout, Flatten, Reshape
from keras.layers import LeakyReLU
from keras.layers import Conv2D, Conv2DTranspose
from keras.models import Sequential
from keras.optimizers import Adam
致:

我甚至试着让tf_1与

tf.compat.v1.disable_v2_behavior()
-表现仍然很差


为什么会这样?我是否错过了一些明显的东西?

我不久前遇到过这个问题-如果我没记错的话,tf.keras和keras的默认学习率是不同的。我似乎再也找不到了,但我相信tf.keras的默认值为1e-3,而keras的默认值为1。不是100%确定,但值得检查。谢谢@StanleyZheng-我想你不知道这是给哪位乐观主义者的?我正在使用Adam每个优化器的默认值-如果你不设置lr,那么学习率将不同。@StanleyZheng BatchNormalization似乎很可疑,请看我的editHmm,这非常有趣,以前从未见过。很好地解决了这个问题,这会花我一辈子的时间。
tf.compat.v1.disable_v2_behavior()