各自的 CNN(DCGAN) 模型的代码和内核值是多少? TF卡拉斯

What is the code and kernel value of the respective CNN(DCGAN) model? TF KERAS

我正在尝试复制胡光华的论文“基于深度卷积生成对抗网络的无监督织物缺陷检测”。 它是一个 DCGAN,但也有一个逆变器,类似于鉴别器。

我的问题是我应该如何传输来对模型进行编码?我会 post 模型的图片和解释 table。还有我尝试做的代码。

这是模型(鉴别器和反相器)

这里是 table 对模型的解释。

我的主要问题是第 1 层没有内核值,我应该如何处理它?

这是我尝试执行的代码。哪里不对请指正。

def make_discriminator_model():
    model = tf.keras.Sequential()
    model.add(layers.Conv2D(64,kernel_size=(3, 3), strides=(2, 2), padding='same', input_shape=[32, 32, 1]))
    model.add(layers.LeakyReLU())
    #print("First conv discriminator:",y.shape)
   
    
    model.add(layers.Conv2D(128, kernel_size=(3, 3), strides=(2, 2), padding='same'))
    #assert model.output_shape == (None, 8, 8, 128)
    model.add(layers.BatchNormalization())
    model.add(layers.LeakyReLU())


    model.add(layers.Conv2D(192, kernel_size=(3, 3), strides=(2, 2), padding='same'))
    #assert model.output_shape == (None, 4, 4, 192)
    model.add(layers.BatchNormalization())
    model.add(layers.LeakyReLU())


    model.add(layers.Conv2D(256, kernel_size=(3, 3), strides=(2, 2), padding='same'))
    #assert model.output_shape == (None, 2, 2, 256)
    model.add(layers.BatchNormalization())
    model.add(layers.LeakyReLU())


    model.add(layers.Flatten())
    model.add(layers.Dense(1,activation='sigmoid'))

    return model


def make_inverter_model():
    model = tf.keras.Sequential()
    model.add(layers.Conv2D(64, kernel_size=(3, 3), strides=(2, 2), padding='same', input_shape=[32, 32, 1]))
    model.add(layers.LeakyReLU())

   
    
    model.add(layers.Conv2D(128, kernel_size=(3, 3), strides=(2, 2), padding='same'))
    #assert model.output_shape == (None, 8, 8, 128)
    model.add(layers.BatchNormalization())
    model.add(layers.LeakyReLU())


    model.add(layers.Conv2D(192, kernel_size=(3, 3), strides=(2, 2), padding='same'))
    #assert model.output_shape == (None, 4, 4, 192)
    model.add(layers.BatchNormalization())
    model.add(layers.LeakyReLU())


    model.add(layers.Conv2D(256, kernel_size=(3, 3), strides=(2, 2), padding='same'))
    #assert model.output_shape == (None, 2, 2, 256)
    model.add(layers.BatchNormalization())
    model.add(layers.LeakyReLU())


    model.add(layers.Flatten())
    model.add(layers.Dense(64,activation='tanh',use_bias=False,)) #layers.Dense(2*2*256, use_bias=False,
    #model.add(layers.Activation('tanh'))
    #model.add(layers.Dense(64,activation='sigmoid'))

    return model


回答你的主要问题,从你发布的图表来看,你在第一层正确使用了 3x3 内核。

其余代码在我看来是正确的。您遇到错误了吗?