Created
June 15, 2019 04:08
-
-
Save MLWhiz/c267ca3d10cb7aba0be84f556e3701e1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment