gpt4 book ai didi

python - keras变分自动编码器损失函数

转载 作者:行者123 更新时间:2023-12-01 06:21:41 24 4
gpt4 key购买 nike

我已阅读 this blog Keras 介绍 VAE 实现,其中 VAE 损失定义如下:

def vae_loss(x, x_decoded_mean):
xent_loss = objectives.binary_crossentropy(x, x_decoded_mean)
kl_loss = - 0.5 * K.mean(1 + z_log_sigma - K.square(z_mean) - K.exp(z_log_sigma), axis=-1)
return xent_loss + kl_loss

我查看了Keras documentation VAE 损失函数定义如下:在此实现中,reconstruction_loss 乘以original_dim,这在第一个实现中我没有看到!

if args.mse:
reconstruction_loss = mse(inputs, outputs)
else:
reconstruction_loss = binary_crossentropy(inputs,
outputs)

reconstruction_loss *= original_dim
kl_loss = 1 + z_log_var - K.square(z_mean) - K.exp(z_log_var)
kl_loss = K.sum(kl_loss, axis=-1)
kl_loss *= -0.5
vae_loss = K.mean(reconstruction_loss + kl_loss)
vae.add_loss(vae_loss)

有人可以解释一下为什么吗?谢谢!

最佳答案

first_one: CE + 均值(kl, axis=-1) = CE + sum(kl, axis=-1)/d

第二个_one:d * CE + sum(kl, axis=-1)

所以:first_one = secondary_one/d

请注意,第二个返回所有样本的平均损失,但第一个返回所有样本的损失向量。

关于python - keras变分自动编码器损失函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60327520/

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