Spaces:
Sleeping
Sleeping
| import keras | |
| import tensorflow as tf | |
| from keras.models import Model | |
| #rom keras.models import Input | |
| from keras.layers import Conv2D,Input | |
| from keras.layers import Conv2DTranspose | |
| from keras.layers import LeakyReLU | |
| from keras.layers import Activation | |
| from keras.layers import Concatenate | |
| from keras.layers import Dropout | |
| from keras.layers import BatchNormalization | |
| from matplotlib import pyplot as plt | |
| from keras.initializers import RandomNormal | |
| from keras.layers import concatenate,MaxPooling2D | |
| #model architecture | |
| def Generator(x=256,y=256,z=3): | |
| inputs=tf.keras.Input(shape=(x,y,z)) | |
| init = RandomNormal(stddev=0.02) | |
| c1=Conv2D(64,(4,4),strides=(2,2),activation="relu",kernel_initializer=init,padding="same")(inputs) | |
| c1=LeakyReLU(alpha=0.2)(c1)#(64,64,64) | |
| c2 = Conv2D(128, (4,4),strides=(2,2), kernel_initializer=init, padding='same')(c1) | |
| c2=BatchNormalization()(c2,training=True)#(128,32,32) | |
| c2=LeakyReLU(alpha=0.2)(c2) | |
| c3 = Conv2D(256 ,(4,4), strides=(2,2) ,kernel_initializer=init, padding='same')(c2) | |
| c3=BatchNormalization()(c3,training=True)#(256,16,16) | |
| c3=LeakyReLU(alpha=0.2)(c3) | |
| c4 = Conv2D(512, (4,4), strides=(2,2), kernel_initializer=init, padding='same')(c3) | |
| c4=BatchNormalization()(c4,training=True)#(512,8,8) | |
| c4=LeakyReLU(alpha=0.2)(c4) | |
| c5 = Conv2D(512, (4,4),strides=(2,2), kernel_initializer=init, padding='same')(c4) | |
| c5=BatchNormalization()(c5,training=True)#512,4,4 | |
| c5=LeakyReLU(alpha=0.2)(c5) | |
| c6 = Conv2D(512, (4,4), strides=(2,2),kernel_initializer=init, padding='same')(c5) | |
| c6=BatchNormalization()(c6,training=True)#512,2,2 | |
| c6=LeakyReLU(alpha=0.2)(c6) | |
| c7 = Conv2D(512, (4,4), strides=(2,2), kernel_initializer=init, padding='same')(c6) | |
| c7=BatchNormalization()(c7,training=True)#512,1,1 | |
| c7=LeakyReLU(alpha=0.2)(c7) | |
| #b = Conv2D(512, (4,4), strides=(2,2), padding='same', kernel_initializer=init)(c7) | |
| #b = Activation('relu')(c7) | |
| d1 = Conv2DTranspose(512, (4,4), strides=(2,2), padding='same', kernel_initializer=init)(c7) | |
| d1=BatchNormalization()(d1,training=True)#512*2*2 | |
| d1=Dropout(0.5)(d1,training=True) | |
| d1=Concatenate()([d1, c6]) | |
| d1=Activation("relu")(d1) | |
| d2 =Conv2DTranspose(512, (4,4), strides=(2,2), padding='same', kernel_initializer=init)(d1) | |
| d2=BatchNormalization()(d2,training=True)#512*4*4 | |
| d2=Dropout(0.5)(d2,training=True) | |
| d2=Concatenate()([d2,c5]) | |
| d2=Activation("relu")(d2) | |
| d3 = Conv2DTranspose(512, (4,4), strides=(2,2), padding='same', kernel_initializer=init)(d2) | |
| d3=BatchNormalization()(d3,training=True)#512*8*8 | |
| d3=Dropout(0.5)(d3,training=True) | |
| d3=Concatenate()([d3, c4]) | |
| d3=Activation("relu")(d3) | |
| d4 = Conv2DTranspose(512, (4,4), strides=(2,2), padding='same', kernel_initializer=init)(d3) | |
| d4=BatchNormalization()(d4,training=True)#512*16*16 | |
| #d4=Dropout(0.5)(d4,training=True) | |
| d4=Concatenate()([d4, c3]) | |
| d4=Activation("relu")(d4) | |
| d5 = Conv2DTranspose(256, (4,4), strides=(2,2), padding='same', kernel_initializer=init)(d4) | |
| d5=BatchNormalization()(d5,training=True)#256*32*32 | |
| #d5=Dropout(0.5)(d5,training=True) | |
| d5=Concatenate()([d5, c2]) | |
| d5=Activation("relu")(d5) | |
| d6 = Conv2DTranspose(128, (4,4), strides=(2,2), padding='same', kernel_initializer=init)(d5) | |
| d6=BatchNormalization()(d6,training=True)#128*64*64 | |
| #d6=Dropout(0.5)(d6,training=True) | |
| d6=Concatenate()([d6, c1]) | |
| d6=Activation("relu")(d6) | |
| #d7 = Conv2DTranspose(64, (4,4), strides=(2,2), padding='same', kernel_initializer=init)(d6) | |
| #d7=BatchNormalization()(d7,training=True) | |
| #d7=Concatenate()([d7, c1]) | |
| #$d7=Activation("relu")(d7) | |
| f = Conv2DTranspose(3, (4,4), strides=(2,2), padding='same', kernel_initializer=init)(d6) | |
| out_image = Activation('tanh')(f) #3,128,128 | |
| model = Model(inputs, out_image) | |
| return model | |