1

我正在使用此代码来训练 DCGAN 模型以生成图像。DCGAN

我希望能够以比模型训练时更高的分辨率输出(预测)图像,我被告知如果使用卷积,这是可能的。在以下描述生成器模型的代码中,如果我更改 Conv2DTranspose 层的步幅,我可以增加输出形状(因此图像分辨率)。如何在训练期间将步幅设置为与预测不同的值?还是有不同的方式来做我想做的事?

# Creates the generator model. This model has an input of random noise and
# generates an image that will try mislead the discriminator.

def construct_generator():
generator = Sequential()

generator.add(Dense(units=4 * 4 * 512,
                    kernel_initializer='glorot_uniform',
                    input_shape=(1, 1, 100)))
generator.add(Reshape(target_shape=(4, 4, 512)))
generator.add(BatchNormalization(momentum=0.5))
generator.add(Activation('relu'))

generator.add(Conv2DTranspose(filters=256, kernel_size=(5, 5),
                              strides=(2, 2), padding='same',
                              data_format='channels_last',
                              kernel_initializer='glorot_uniform'))
generator.add(BatchNormalization(momentum=0.5))
generator.add(Activation('relu'))

generator.add(Conv2DTranspose(filters=128, kernel_size=(5, 5),
                              strides=(2, 2), padding='same',
                              data_format='channels_last',
                              kernel_initializer='glorot_uniform'))
generator.add(BatchNormalization(momentum=0.5))
generator.add(Activation('relu'))

generator.add(Conv2DTranspose(filters=64, kernel_size=(5, 5),
                              strides=(2, 2), padding='same',
                              data_format='channels_last',
                              kernel_initializer='glorot_uniform'))
generator.add(BatchNormalization(momentum=0.5))
generator.add(Activation('relu'))

generator.add(Conv2DTranspose(filters=3, kernel_size=(5, 5),
                              strides=(2, 2), padding='same',
                              data_format='channels_last',
                              kernel_initializer='glorot_uniform'))
generator.add(Activation('tanh'))

optimizer = Adam(lr=0.00015, beta_1=0.5)
generator.compile(loss='binary_crossentropy',
                  optimizer=optimizer,
                  metrics=None)

return generator
4

0 回答 0