作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已阅读 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/
COW 不是奶牛,是 Copy-On-Write 的缩写,这是一种是复制但也不完全是复制的技术。 一般来说复制就是创建出完全相同的两份,两份是独立的: 但是,有的时候复制这件事没多大必要
我是一名优秀的程序员,十分优秀!