pytorch - pytorch代码中的KL-divergence与公式有什么关系?
问题描述
而在很多代码中,比如here、here和here,代码实现如下:
KL_loss = -0.5 * torch.sum(1 + logv - mean.pow(2) - logv.exp())
或者
def latent_loss(z_mean, z_stddev):
mean_sq = z_mean * z_mean
stddev_sq = z_stddev * z_stddev
return 0.5 * torch.mean(mean_sq + stddev_sq - torch.log(stddev_sq) - 1)
它们有什么关系?为什么代码中没有任何“tr”或“.transpose()”?
解决方案
推荐阅读
- python - python plotnine:facet_grid中的labeller不改变构面标题
- r - 在 R 中的行之间查找公共字符串
- esper - 在第一次输出后终止嵌套上下文
- android-studio - 如何正确导入项目?
- python - 在 Python Google Cloud Functions 中使用 URL 路径变量
- javascript - 从类返回字符串 - JavaScript
- javascript - JS - 在字符串中创建空格,直到它获得一定的宽度
- javascript - SEQUELIZE 不会通过插入一行来自动增加 id?
- html - Chrome 和 Firefox 中的 xpath 没有黄色高亮显示
- c# - PunRPC 方法无法在所有客户端上实例化游戏对象