def Encoder(input_shape): input_layer = self.keras.layers.Input(input_shape) x = input_layer if created_vram_gb >= 4: x = conv(self.keras, x, 128) x = conv(self.keras, x, 256) x = conv(self.keras, x, 512) x = conv(self.keras, x, 1024) x = self.keras.layers.Dense(1024)( self.keras.layers.Flatten()(x)) x = self.keras.layers.Dense(4 * 4 * 1024)(x) x = self.keras.layers.Reshape((4, 4, 1024))(x) x = upscale(self.keras, x, 512) else: x = conv(self.keras, x, 128) x = conv(self.keras, x, 256) x = conv(self.keras, x, 512) x = conv(self.keras, x, 768) x = self.keras.layers.Dense(512)( self.keras.layers.Flatten()(x)) x = self.keras.layers.Dense(4 * 4 * 512)(x) x = self.keras.layers.Reshape((4, 4, 512))(x) x = upscale(self.keras, x, 256) return self.keras.models.Model(input_layer, x)
def Decoder(self): input_ = self.keras.layers.Input(shape=(4, 4, 1024)) x = input_ x = upscale(self.keras, x, 512) x = res(self.keras, x, 512) x = upscale(self.keras, x, 256) x = res(self.keras, x, 256) x = upscale(self.keras, x, 128) x = res(self.keras, x, 128) x = upscale(self.keras, x, 64) x = res(self.keras, x, 64) x = upscale(self.keras, x, 32) x = res(self.keras, x, 32) x = self.keras.layers.convolutional.Conv2D(3, kernel_size=5, padding='same', activation='sigmoid')(x) y = input_ #mask decoder y = upscale(self.keras, y, 512) y = upscale(self.keras, y, 256) y = upscale(self.keras, y, 128) y = upscale(self.keras, y, 64) y = upscale(self.keras, y, 32) y = self.keras.layers.convolutional.Conv2D(1, kernel_size=5, padding='same', activation='sigmoid')(y) return self.keras.models.Model(input_, [x, y])
def Encoder(input_shape): input_layer = self.keras.layers.Input(input_shape) x = input_layer if created_vram_gb >= 5: x = conv(self.keras, x, 128) x = conv(self.keras, x, 256) x = conv(self.keras, x, 512) x = conv(self.keras, x, 1024) x = self.keras.layers.Dense(512)( self.keras.layers.Flatten()(x)) x = self.keras.layers.Dense(8 * 8 * 512)(x) x = self.keras.layers.Reshape((8, 8, 512))(x) x = upscale(self.keras, x, 512) else: x = conv(self.keras, x, 128) x = conv(self.keras, x, 256) x = conv(self.keras, x, 512) x = conv(self.keras, x, 1024) x = self.keras.layers.Dense(256)( self.keras.layers.Flatten()(x)) x = self.keras.layers.Dense(8 * 8 * 256)(x) x = self.keras.layers.Reshape((8, 8, 256))(x) x = upscale(self.keras, x, 256) return self.keras.models.Model(input_layer, x)
def decoder64(encoder): decoder_input = keras.layers.Input ( K.int_shape(encoder.outputs[0])[1:] ) x = decoder_input x = self.keras.layers.Dense(8 * 8 * 720)(x) x = keras.layers.Reshape ( (8, 8, 720) )(x) x = upscale(keras, x, 360) x = upscale(keras, x, 180) x = upscale(keras, x, 90) x = keras.layers.convolutional.Conv2D(3, kernel_size=5, padding='same', activation='sigmoid')(x) return keras.models.Model(decoder_input, x)
def Decoder(): if created_vram_gb >= 4: input_ = self.keras.layers.Input(shape=(8, 8, 512)) x = input_ x = upscale(self.keras, x, 512) x = upscale(self.keras, x, 256) x = upscale(self.keras, x, 128) else: input_ = self.keras.layers.Input(shape=(8, 8, 256)) x = input_ x = upscale(self.keras, x, 256) x = upscale(self.keras, x, 128) x = upscale(self.keras, x, 64) y = input_ #mask decoder y = upscale(self.keras, y, 256) y = upscale(self.keras, y, 128) y = upscale(self.keras, y, 64) x = self.keras.layers.convolutional.Conv2D(3, kernel_size=5, padding='same', activation='sigmoid')(x) y = self.keras.layers.convolutional.Conv2D(1, kernel_size=5, padding='same', activation='sigmoid')(y) return self.keras.models.Model(input_, [x, y])
def Decoder(self, created_vram_gb): if created_vram_gb >= 4: input_ = self.keras.layers.Input(shape=(8, 8, 512)) x = input_ x = upscale(self.keras, x, 512) x = res(self.keras, x, 512) x = upscale(self.keras, x, 256) x = res(self.keras, x, 256) x = upscale(self.keras, x, 128) x = res(self.keras, x, 128) x = upscale(self.keras, x, 64) x = res(self.keras, x, 64) else: input_ = self.keras.layers.Input(shape=(8, 8, 256)) x = input_ x = upscale(self.keras, x, 256) x = res(self.keras, x, 256) x = upscale(self.keras, x, 128) x = res(self.keras, x, 128) x = upscale(self.keras, x, 64) x = res(self.keras, x, 64) x = upscale(self.keras, x, 32) x = res(self.keras, x, 32) x = self.keras.layers.convolutional.Conv2D(4, kernel_size=5, padding='same', activation='sigmoid')(x) return self.keras.models.Model(input_, x)
def Intermediate(self): input_layer = self.keras.layers.Input(shape=(None, 8 * 8 * 1024)) x = input_layer x = self.keras.layers.Dense(256)(x) x = self.keras.layers.Dense(8 * 8 * 512)(x) x = self.keras.layers.Reshape((8, 8, 512))(x) x = upscale(self.keras, x, 512) return self.keras.models.Model(input_layer, x)
def Encoder(self, input_layer): x = input_layer x = conv(self.keras, x, 128) x = conv(self.keras, x, 256) x = conv(self.keras, x, 512) x = conv(self.keras, x, 1024) x = self.keras.layers.Dense(512)(self.keras.layers.Flatten()(x)) x = self.keras.layers.Dense(8 * 8 * 512)(x) x = self.keras.layers.Reshape((8, 8, 512))(x) x = upscale(self.keras, x, 512) return self.keras.models.Model(input_layer, x)
def DecoderCommon(self): input_ = self.keras.layers.Input(shape=(4, 4, 1024)) x = input_ x = upscale(self.keras, x, 512) x = res(self.keras, x, 512) x = upscale(self.keras, x, 256) x = res(self.keras, x, 256) x = upscale(self.keras, x, 128) x = res(self.keras, x, 128) x = upscale(self.keras, x, 64) x = res(self.keras, x, 64) x = upscale(self.keras, x, 32) x = res(self.keras, x, 32) y = input_ y = upscale(self.keras, y, 256) y = upscale(self.keras, y, 128) y = upscale(self.keras, y, 64) y = upscale(self.keras, y, 32) y = upscale(self.keras, y, 16) return self.keras.models.Model(input_, [x,y])