Spaces:
Sleeping
Sleeping
File size: 3,922 Bytes
1ce3c00 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | 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
|