首页 > 其他分享 >如何计算两个正太分布的KL散度 —— 正太分布的KL散度 (Kullback-Leibler divergence) 计算

如何计算两个正太分布的KL散度 —— 正太分布的KL散度 (Kullback-Leibler divergence) 计算

时间:2024-02-26 22:00:41浏览次数:19  
标签:正太 log 散度 KL Variable std1 std0

参考:

https://blog.csdn.net/int_main_Roland/article/details/124650909


image



给出实现代码:

    def get_kl():
        mean0, log_std0, std0 = policy_net(Variable(states))

        mean1 = Variable(mean0.data)
        log_std1 = Variable(log_std0.data)
        std1 = Variable(std0.data)
        kl = log_std1 - log_std0 + (std0.pow(2) + (mean0 - mean1).pow(2)) / (2.0 * std1.pow(2)) - 0.5
        return kl.sum(1, keepdim=True)


标签:正太,log,散度,KL,Variable,std1,std0
From: https://www.cnblogs.com/devilmaycry812839668/p/18035679

相关文章

  • redis自学(5)QuickList
    问题1:ZipList虽然节省内存,但申请内存必须是连续空间,如果内存占用较多,申请内存效率很低。怎么办?为了缓解这个问题,我们必须限制ZipList的长度和entry大小。问题2:但是我们要存储大量数据,超出了ZipList最佳的上限怎么办?我们可以创建多个ZipList来分片存储数据。问题3:数据拆分后比......
  • sklearn学习笔记之线性回归
    AI时代扑面而来,在大众面对ChatGPT和Sora发出无数惊叹号的时候,我决定不再只当一个AI时代的API调用者,而是去学习机器学习技术本身。刚好公司也要往人工智能方向发展的计划,于是我开始从基础学习,发现了一个宝藏开源机器学习库:scikit-learn。scikit-learn文档健全,社区生态非常完善,这......
  • 跟着思兼学习Klipper(29):行空板遇上Klipper之一: 安装Klipper全家桶
    前言原创文章,转载引用请务必注明链接,水平有限,如有疏漏,欢迎交流指正。文章如有更新请访问DFRobot社区及cnblogs博客园,前者内容较全,后者排版及阅读体验更佳。先有三后有一,你说奇怪不奇怪。去年Ash老板问我行空板能否安装使用Klipper全家桶作为3D打印机上位机使用,答案......
  • pkl apple 开源的配置即代码语言
    pklapple开源的配置即代码语言应用场景生成静态配置 可以方便的生成json,yaml,xml格式配置应用运行时配置 官方提供了swift,go,java,kotlin语言的支持,可以方便使用说明github上的start不少,值得看看,同时也直接可以集成到springboot项目中,很不错参考资料https://githu......
  • 超省电LCD液晶段码驱动芯片VKL144A/B 超薄封装 适用于燃气表,瓦斯表等产品
    由于煤气罐的使用安全隐患较大,现在大部分城市使用管道输送燃气,燃气表的计费大都是通过远程抄表的方式,或者充值的方式,为了让用户更好地了解自家燃气表的使用情况,需要一款液晶屏来显示燃气表的状态和用气量等信息,而燃气表通常选用超低功耗的芯片来进行显示驱动。超低功耗的芯片,由于......
  • E. Klever Permutation
    E.KleverPermutationYouaregiventwointegers$n$and$k$($k\len$),where$k$iseven.Apermutationoflength$n$isanarrayconsistingof$n$distinctintegersfrom$1$to$n$inanyorder.Forexample,$[2,3,1,5,4]$isapermutation,but$[1,2,......
  • E. Klever Permutation
    题解假设a1a2a3...ak ak+1ak+2...an是符合要求的数组,那么我们可以推断出:a(k+1)=a(1)+1;a(k+2)=a(2)-1;...a(2k+1)=a(k+1)+1;...因此我们知晓奇数位的数要比较小,偶数的位置要比较大;又题目说明一定有解,所以我们假定a1=1,a2=n再递推出其余各项。Code#include<b......
  • windows查看端口占用,通过端口找进程号(查找进程号),通过进程号定位应用名(查找应用)(netstat
     文章目录通过端口号查看进程号`netstat`通过进程号定位应用程序`tasklist` 通过端口号查看进程号netstat在Windows系统中,可以使用netstat命令来查看端口的占用情况。以下是具体的步骤:打开命令提示符(CMD):按Win+R组合键打开运行对话框,输入cmd并按Enter键。......
  • Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)
    原文:Hands-OnMachineLearningwithScikit-Learn,Keras,andTensorFlow译者:飞龙协议:CCBY-NC-SA4.0第十六章:使用RNN和注意力进行自然语言处理当艾伦·图灵在1950年想象他著名的Turing测试时,他提出了一种评估机器匹配人类智能能力的方法。他本可以测试许多事情,比如......
  • Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(二)
    原文:Hands-OnMachineLearningwithScikit-Learn,Keras,andTensorFlow译者:飞龙协议:CCBY-NC-SA4.0第三章:分类在第一章中,我提到最常见的监督学习任务是回归(预测值)和分类(预测类)。在第二章中,我们探讨了一个回归任务,使用各种算法(如线性回归、决策树和随机森林)来预测房屋价......