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

What's the difference between keras.datasets.mnist and tensorflow.examples.tutorials.mnist?

我正在分析this DCGAN. When I use input_data from tensorflow.examples.tutorials.mnist, as seen in line 144:

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

我取得了不错的成绩: 虽然当我使用 keras.datasets 中的 mnist 并且第 144 行看起来像这样:

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

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

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

很有可能 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