gpt4 book ai didi

python - Keras 变分自动编码器示例 - 潜在输入的使用

转载 作者:太空宇宙 更新时间:2023-11-03 13:59:53 24 4
gpt4 key购买 nike

我是 Keras 的新手,一直在努力理解变分自动编码器示例中变量 z 的用法 github .我不明白为什么不使用 z 而不是变量 latent_inputs。我运行了代码,它似乎可以工作,但我不明白 z 是否在幕后使用,以及 Keras 中负责它的机制是什么。这是相关的代码片段:

# VAE model = encoder + decoder
# build encoder model
inputs = Input(shape=input_shape, name='encoder_input')
x = Dense(intermediate_dim, activation='relu')(inputs)
z_mean = Dense(latent_dim, name='z_mean')(x)
z_log_var = Dense(latent_dim, name='z_log_var')(x)

# use reparameterization trick to push the sampling out as input
# note that "output_shape" isn't necessary with the TensorFlow backend
z = Lambda(sampling, output_shape=(latent_dim,), name='z')([z_mean, z_log_var])

# instantiate encoder model
encoder = Model(inputs, [z_mean, z_log_var, z], name='encoder')
encoder.summary()
plot_model(encoder, to_file='vae_mlp_encoder.png', show_shapes=True)

# build decoder model
latent_inputs = Input(shape=(latent_dim,), name='z_sampling')
x = Dense(intermediate_dim, activation='relu')(latent_inputs)
outputs = Dense(original_dim, activation='sigmoid')(x)

# instantiate decoder model
decoder = Model(latent_inputs, outputs, name='decoder')
decoder.summary()
plot_model(decoder, to_file='vae_mlp_decoder.png', show_shapes=True)

# instantiate VAE model
outputs = decoder(encoder(inputs)[2])
vae = Model(inputs, outputs, name='vae_mlp')

最佳答案

您的编码器 被定义为一个接受输入inputs 并给出输出[z_mean, z_log_var, z] 的模型。然后,您单独定义解码器以获取一些输入,此处称为 latent_inputs,并输出 outputs。最后,您的整体模型在以下行中定义:

outputs = decoder(encoder(inputs)[2])

这意味着您将在您的输入上运行encoder,它产生[z_mean, z_log_var, z],然后是第三个其中的元素(称为 result[2])作为输入参数传递给 decoder。换句话说,当您实现您的网络时,您将 latent_inputs 设置为等于编码器的第三个输出,或 [z_mean, z_log_var, z][2] = z .您可以将其视为(可能不是有效代码):

encoder_outputs = encoder(inputs)  # [z_mean, z_log_var, z]
outputs = decoder(latent_inputs=encoder_outputs[2]) # latent_inputs = z

关于python - Keras 变分自动编码器示例 - 潜在输入的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50590536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com