详细代码见这里
主体部分
导入相应的包
import numpy as np
from tensorflow.keras.layers import Conv2D, Conv2DTranspose, LeakyReLU, Activation, ZeroPadding2D, BatchNormalization, Add
from tensorflow.keras import Input, Model
from instancenormalization import InstanceNormalization
1.残差块
def resnet_block(x):
x2 = Conv2D(filters=256, kernel_size=3, strides=1, padding="same")(x)
x2 = InstanceNormalization(axis=1)(x2)
x2 = Activation('relu')(x2)
x2 = Conv2D(filters=256, kernel_size=3, strides=1, padding="same")(x2)
x2 = InstanceNormalization(axis=1)(x2)
return Add()([x2, x])
2.建立生成器generator
def define_generator_network(num_resnet_blocks=9):
input_size = (128,128,3)
#Input RGB image
input_layer = Input(shape=input_size)
#Down-sampling using conv2d
x = Conv2D(filters=64, kernel_size=7, strides=1, padding="same")(input_layer)
x = InstanceNormalization(axis=1)(x)
x =