pytorch 笔记:KLDivLoss

news2024/12/22 19:38:30

1 介绍

对于具有相同形状的张量 ypred​ 和 ytrue(ypred​ 是输入,ytrue​ 是目标),定义逐点KL散度为:

为了在计算时避免下溢问题,此KLDivLoss期望输入在对数空间中。如果log_target=True,则目标也在对数空间。

2 参数

reduction

reduction= “mean”不返回真正的KL散度值,reduction= “batchmean”才是

log_target指定目标是否在对数空间中

3 举例

import torch
import torch.nn as nn


input = torch.tensor([[0.5, -0.5, 0.1], [0.1, -0.2, 0.3]], requires_grad=True)

target = torch.tensor([[0.7, 0.2, 0.1], [0.1, 0.5, 0.4]])

loss_function = nn.KLDivLoss(reduction='batchmean')
loss = loss_function(input, target)
print(loss)
#tensor(-1.0176, grad_fn=<DivBackward0>)

等价手动形式:

target*(target.log()-input)
'''
tensor([[-0.5997, -0.2219, -0.2403],
        [-0.2403, -0.2466, -0.4865]], grad_fn=<MulBackward0>)
'''

#这里的每个元素计算方式为:
'''
tensor([[-0.5997, -0.2219, -0.2403],
        [-0.2403, -0.2466, -0.4865]], grad_fn=<MulBackward0>)
'''

torch.sum(target*(target.log()-input))/2
#tensor(-1.0176, grad_fn=<DivBackward0>)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1145419.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【继承练习题--多态-- 动态绑定-- 重写】

文章目录 继承的练习题&#xff1a;多态多态实现条件 动态绑定什么是重写Override 注解重写的条件&#xff08;缺一不可&#xff09;有一种特殊的重写&#xff1a;叫协变类型重写的设计原则快捷键生成重写重写和重载的区别object类是所有类的父类 总结 继承的练习题&#xff1a…

芯片封装简介【待补充】

TO封装 最开始的封装&#xff0c;这类封装三脚的比较多&#xff0c;比如7805 7812 等电源芯片 STO三脚贴片封装 TO的贴片形式 三极管和LDO比较常见 DIP封装 51单片机&#xff08;双列直插式封装&#xff09; SIP封装单列直插式封装&#xff08;罕见&#xff09; 5. SOP封…

出师表排序

一.原文件 二.代码 package org.example;import java.io.*; import java.util.ArrayList; import java.util.Collections; import java.util.List;public class day12 {public static void main(String[] args) {try (BufferedReader br new BufferedReader(new FileReader(…

Android 3D Launcher锁定IMU界面

故事背景&#xff1a; 最近工厂反馈由于VR设备老化测试完成之后&#xff0c;变绿界面不明显&#xff0c;只占3D系统一部分,每次需要戴头盔&#xff0c;才能确定老化完成。导致工厂效率变低&#xff0c;如果后期产能变大&#xff0c;效率更低。 1、针对以上需求我们需要拆分 1、…

动态规划-扫地机器人最少初始电量

扫地机器人在一个方格形状的地图中执行清扫任务&#xff0c;地图中每一个格子代表一个房间&#xff0c;地图用一个数组来表示&#xff1a; 1&#xff09;扫地机器人从地图左上角出发&#xff0c;每次清扫完一个房间后只能向石或向下走到另外一个房间&#xff0c;最后到达右下角…

LeetCode--196. 删除重复的电子邮箱

文章目录 1 题目描述2 解题思路2.1 代码实现 1 题目描述 表: Person ---------------------- | Column Name | Type | ---------------------- | id | int | | email | varchar | ----------------------id 是该表的主键列(具有唯一值的列)。 该表的每…

售货机相关的电路

一、货道选通矩阵电路&#xff0c;类似扫描电路&#xff0c;驱动哪个电机&#xff0c;就打开相应的行线与列线输出 二、MDB纸币器&#xff0c;虽然现在国内都是手机支付&#xff0c;但如果机器还是外销国外还是有用 三、硬币器电路&#xff0c;投币与退币&#xff0c;脉冲信号…

解决git action定时任务执行失败的方法

为了测试git action定时任务是否有效&#xff0c;你可能选择一个最近的时间测试&#xff0c; 但是发现怎么也触发不了&#xff0c;是不是觉得很苦恼。但是同样的时间&#xff0c;在第二天的定时任务又能成功运行。 这是什么原因&#xff1f; 原因就在上图&#xff0c;git act…

【算法|动态规划No.31 | 01背包问题】01背包模板题

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

[双指针](一) Leetcode 283.移动零和1089.复写零

[双指针] Leetcode 283.移动零和1089.复写零 移动零 283. 移动零 1.题意分析 (1) 给你一个数组&#xff0c;将数组中的所有0移动到数组的末尾 (2) 保证非0元素在数组中相对位置不变 (3) 在原数组中操作 2.解题思路 由于题目要求我们移动数组内容&#xff08;也就是交换两…

LED主流光源

LED主流光源 条形光源 &#xff08;1&#xff09;产品特点&#xff1a; ① 条形光源是大面积打光的首选光源&#xff0c;性价比高&#xff1b; ② 颜色可根据需求搭配&#xff0c;自由组合&#xff1b; ③ 光源照射角度与安装灵活可调。 &#xff08;2&#xff09;应用领域&a…

【Java 进阶篇】Java Request 获取请求体数据详解

在Java Web开发中&#xff0c;获取HTTP请求的请求体数据是一项常见任务。HTTP请求的请求体通常包含了客户端提交的数据&#xff0c;例如表单数据、JSON、XML等。在Java中&#xff0c;可以使用HttpServletRequest对象来获取HTTP请求的请求体数据。本文将详细解释如何使用Java获取…

java基础巩固

JDK11和JDK8是oracle重点维护的 常用的包 单例 多例 枚举 jar包打包 测试

大模型之十九-对话机器人

大语言模型的最早应用是Chatbot&#xff0c;其实我最早接触语义理解在2014年&#xff0c;2014年做智能音箱的时候&#xff0c;那时也是国内第一批做智能音箱的&#xff0c;在现在看起来当时的智能音箱比较傻&#xff0c;很多问题无法回答&#xff0c;长下文效果也不好&#xff…

决定放弃uniapp开发了,因为它实在是没有taro友好

被uniapp折腾了两天&#xff0c;实在是受不了它对vue3的支持和react的支持&#xff0c;可以这么说&#xff0c;uniapp完全没有支持vue3和react&#xff0c;这么说我觉得一点也不过分。相对于折腾了两天uniapp来讲&#xff0c;我使用taro只花了1个小时不到&#xff0c;就可以完美…

IO流框架,缓冲流

一.缓冲流有什么优点 Java中的缓冲流&#xff08;Buffered Stream&#xff09;具有以下优势&#xff1a; 提高效率&#xff1a;缓冲流通过在内存中缓存一部分数据&#xff0c;减少了直接从内存到磁盘或从磁盘到内存的频繁IO操作&#xff0c;从而提高了读写效率。缓冲区大小调整…

最新ChatGPT源码+AI绘画系统+详细图文搭建部署教程+支持OpenAI-GPT全模型+国内AI模型

一、智能AI创作系统 Mental AI创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说Mental AI是目前国内一款的ChatGPT对接OpenAI软件系统。…

SOLIDWORKS参数化设计之格式转换 慧德敏学

现在越来越多的企业开始进行模型的参数化设计规范&#xff0c;不管是使用SOLIDWORKS自带的方程式&#xff0c;还是使用SOLIDWORKS参数化设计插件&#xff0c;参数化的过程其实已经很透明了&#xff0c;都大同小异。 我们之前介绍过SolidKits.AutoWorks软件&#xff0c;可以很方…

【Python3】【力扣题】191. 位1的个数

【力扣题】题目描述&#xff1a; 二进制“与”运算&#xff1a;&#xff08;两个二进制中对应的每一位依次进行“与”运算&#xff09; 1&11&#xff0c;0&10&#xff0c;0&00 【Python3】代码&#xff1a; 1、解题思路&#xff1a;整数转为二进制字符串&#xff…