InfoGAN详解与实现(采用tensorflow2

本文详细介绍了InfoGAN模型的构建和训练过程,使用TensorFlow2进行实现。模型包括Discriminator和Generator,涉及多个损失函数,如二元交叉熵、类别交叉熵和互信息损失。在训练过程中,通过不断迭代优化,生成逼真的图像并学习到有意义的潜在表示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Returns:

Model: Discriminator model

“”"

kernel_size = 5

layer_filters = [32,64,128,256]

x = inputs

for filters in layer_filters:

if filters == layer_filters[-1]:

strides = 1

else:

strides = 2

x = keras.layers.LeakyReLU(0.2)(x)

x = keras.layers.Conv2D(filters=filters,

kernel_size=kernel_size,

strides=strides,

padding=‘same’)(x)

x = keras.layers.Flatten()(x)

outputs = keras.layers.Dense(1)(x)

if activation is not None:

print(activation)

outputs = keras.layers.Activation(activation)(outputs)

if num_labels:

layer = keras.layers.Dense(layer_filters[-2])(x)

labels = keras.layers.Dense(num_labels)(layer)

labels = keras.layers.Activation(‘softmax’,name=‘label’)(labels)

1-dim continous Q of 1st c given x

code1 = keras.layers.Dense(1)(layer)

code1 = keras.layers.Activation(‘sigmoid’,name=‘code1’)(code1)

1-dim continous Q of 2nd c given x

code2 = keras.layers.Dense(1)(layer)

code2 = keras.layers.Activation(‘sigmoid’,name=‘code2’)(code2)

outputs = [outputs,labels,code1,code2]

return keras.Model(inputs,outputs,name=‘discriminator’)

模型构建

#mi_loss

def mi_loss(c,q_of_c_give_x):

“”"mi_loss = -c * log(Q(c|x))

“”"

return K.mean(-K.sum(K.log(q_of_c_give_x + K.epsilon()) * c,axis=1))

def build_and_train_models(latent_size=100):

“”"Load the dataset, build InfoGAN models,

Call the InfoGAN train routine.

“”"

(x_train,y_train),_ = keras.datasets.mnist.load_data()

image_size = x_train.shape[1]

x_train = np.reshape(x_train,[-1,image_size,image_size,1])

x_train = x_train.astype(‘float32’) / 255.

num_labels = len(np.unique(y_train))

y_train = keras.utils.to_categorical(y_train)

#超参数

model_name

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值