keras.datasets.mnist和tensorflow.examples.tutorials.mnist有什么区别?

时间:2018-12-31 11:20:49

标签: tensorflow keras neural-network mnist dcgan

我正在分析this DCGAN。当我使用input_data中的tensorflow.examples.tutorials.mnist时,如line 144所示:

self.x_train = input_data.read_data_sets("mnist",\
        one_hot=True).train.images

我获得了相当不错的成绩: enter image description here 尽管当我使用mnist中的keras.datasets时,第144行看起来像这样:

(xtr, ytr), (xte, yte) = mnist.load_data();
    self.x_train = xtr

我得到了非常糟糕的结果: enter image description here 我已经从两个数据集中手动检查了一些图像,它们非常相似。

那么keras.datasets.mnisttensorflow.examples.tutorials.mnist有什么区别?为什么生成的图像如此不同? keras.datasets.mnist在做什么?

1 个答案:

答案 0 :(得分:1)

很有可能tensorflow.examples.tutorials.mnist中的图像已被标准化为[0,1]范围,因此可以获得更好的结果。而Keras中MNIST数据集中的值在[0,255]范围内,并且您需要对其进行归一化(当然,如果需要)。试试这个:

(xtr, ytr), (xte, yte) = mnist.load_data()
xtr = xtr.astype('float32') / 255.0
xte = xte.astype('float32') / 255.0