Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def get_gen_normal(noise_shape):
- ''' This function takes as input shape of the noise vector and creates the Keras generator architecture.
- '''
- kernel_init = 'glorot_uniform'
- gen_input = Input(shape = noise_shape)
- # Transpose 2D conv layer 1.
- generator = Conv2DTranspose(filters = 512, kernel_size = (4,4), strides = (1,1), padding = "valid", data_format = "channels_last", kernel_initializer = kernel_init)(gen_input)
- generator = BatchNormalization(momentum = 0.5)(generator)
- generator = LeakyReLU(0.2)(generator)
- # Transpose 2D conv layer 2.
- generator = Conv2DTranspose(filters = 256, kernel_size = (4,4), strides = (2,2), padding = "same", data_format = "channels_last", kernel_initializer = kernel_init)(generator)
- generator = BatchNormalization(momentum = 0.5)(generator)
- generator = LeakyReLU(0.2)(generator)
- # Transpose 2D conv layer 3.
- generator = Conv2DTranspose(filters = 128, kernel_size = (4,4), strides = (2,2), padding = "same", data_format = "channels_last", kernel_initializer = kernel_init)(generator)
- generator = BatchNormalization(momentum = 0.5)(generator)
- generator = LeakyReLU(0.2)(generator)
- # Transpose 2D conv layer 4.
- generator = Conv2DTranspose(filters = 64, kernel_size = (4,4), strides = (2,2), padding = "same", data_format = "channels_last", kernel_initializer = kernel_init)(generator)
- generator = BatchNormalization(momentum = 0.5)(generator)
- generator = LeakyReLU(0.2)(generator)
- # conv 2D layer 1.
- generator = Conv2D(filters = 64, kernel_size = (3,3), strides = (1,1), padding = "same", data_format = "channels_last", kernel_initializer = kernel_init)(generator)
- generator = BatchNormalization(momentum = 0.5)(generator)
- generator = LeakyReLU(0.2)(generator)
- # Final Transpose 2D conv layer 5 to generate final image. Filter size 3 for 3 image channel
- generator = Conv2DTranspose(filters = 3, kernel_size = (4,4), strides = (2,2), padding = "same", data_format = "channels_last", kernel_initializer = kernel_init)(generator)
- # Tanh activation to get final normalized image
- generator = Activation('tanh')(generator)
- # defining the optimizer and compiling the generator model.
- gen_opt = Adam(lr=0.00015, beta_1=0.5)
- generator_model = Model(input = gen_input, output = generator)
- generator_model.compile(loss='binary_crossentropy', optimizer=gen_opt, metrics=['accuracy'])
- generator_model.summary()
- return generator_model
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement