如何测试GAN的鉴别器是否经过正确训练?

时间:2019-08-28 08:11:09

标签: python keras gan

我正在使用CCGAN(互补条件GAN)。我已经训练了生成器和鉴别器。但是在测试时,我只想使用鉴别器。但我无法做到这一点。预测功能正常运行,但我要评估鉴别器。

训练正常,生成的图像非常好。坚果我想在除训练图像之外的其他图像上测试鉴别器。

我在测试时使用过test_on_batch。

def build_discriminator(self):

    img = Input(shape=self.img_shape)

    model = Sequential()
    model.add(Conv2D(64, kernel_size=4, strides=2, padding='same', 
    input_shape=self.img_shape))
    model.add(LeakyReLU(alpha=0.8))
    model.add(Conv2D(128, kernel_size=4, strides=2, padding='same'))
    model.add(LeakyReLU(alpha=0.2))
    # model.add(InstanceNormalization())
    model.add(Conv2D(256, kernel_size=4, strides=2, padding='same'))
    model.add(LeakyReLU(alpha=0.2))
    # model.add(InstanceNormalization())



    img = Input(shape=self.img_shape)
    features = model(img)
    # print("Shape of the features of descriminator is::",features.shape)
    validity = Conv2D(1, kernel_size=4, strides=1, padding='same')(features)

    label = Flatten()(features)
    label = Dense(self.num_classes+1, activation="softmax")(label)
    modelDes= Model(img, [validity, label])
    # print("Descriminator summary")
    # modelDes.summary()
    return modelDes

在测试时,我正在使用:

 idx = np.random.randint(0, X_test.shape[0],256)
 imgs = X_test[idx]
 labels = y_test[idx]    
 score_loaded_model=loaded_model.test_on_batch(imgs,[valid,labels])

但是我无法理解问题。当测试图像的大小与训练后的图像相同时,为什么显示错误“ dense_1要求(11,)但得到(1,)”

0 个答案:

没有答案