pytorch: where、gather函数

2023-11-10

**

一、where函数

**
torch.where(condition,x,y)
out = x,if condition is 1
= y ,if condition is 0

In [29]: cond = torch.rand(2,2)

In [30]: cond
Out[30]:
tensor([[0.1326, 0.4126],
        [0.7093, 0.5339]])

In [31]: a = torch.zeros(2,2)

In [32]: a
Out[32]:
tensor([[0., 0.],
        [0., 0.]])

In [33]: b = torch.ones(2,2)

In [34]: b
Out[34]:
tensor([[1., 1.],
        [1., 1.]])

In [35]: torch.where(cond>0.5,a,b)
Out[35]:
tensor([[1., 1.],

**

二、gather函数

**
torch.gather(input,dim,index,out=None)

In [1]: import torch

In [2]: prob = torch.randn(4,10)

In [3]: prob
Out[3]:
tensor([[ 0.8383,  0.2332,  1.1231,  0.4929,  2.1630,  0.9328, -0.9775,  2.9904,
          1.7534,  0.2515],
        [-1.1460,  0.3640, -0.6829, -2.0924,  0.2590,  1.8114,  0.8341, -0.6201,
         -0.8322, -0.1316],
        [ 2.3255, -0.4369,  0.6470,  1.0118, -0.4143,  0.5650, -0.2035, -0.1714,
         -1.1866, -0.0068],
        [ 0.9149, -0.3263, -0.3857,  2.1448, -0.2073,  1.5119, -1.1741, -1.6586,
          0.1826,  1.0848]])

In [4]: idx = prob.topk(dim=1,k=3)

In [5]: idx = idx[1]

In [6]: idx
Out[6]:
tensor([[7, 4, 8],
        [5, 6, 1],
        [0, 3, 2],
        [3, 5, 9]])

In [7]: label = torch.arange(10)+100

In [8]: label
Out[8]: tensor([100, 101, 102, 103, 104, 105, 106, 107, 108, 109])

In [9]: torch.gather(label.expand(4,10),dim=1,index=idx.long())
Out[9]:
tensor([[107, 104, 108],
        [105, 106, 101],
        [100, 103, 102],
        [103, 105, 109]])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pytorch: where、gather函数 的相关文章

随机推荐

  • NET Core 3.0 AutoFac替换内置DI的新姿势

    NET Core 3 0 和 以往版本不同 替换AutoFac服务的方式有了一定的变化 在尝试着升级项目的时候出现了一些问题 原来在NET Core 2 1时候 AutoFac返回一个 IServiceProvider 参数注入到Confi
  • 剖析top命令显示的VIRT RES SHR值

    http yalung929 blog 163 com blog static 203898225201212981731971 http www fuzhijie me p 741 引 言 top命令作为Linux下最常用的性能分析工具之
  • 自然语言处理基础

    以下所有内容来自 自然语言处理 基于预训练模型的方法 1 文本的表示 利用计算机对自然语言进行处理 首先要解决语言在计算机内部的存储和计算问题 使用字符串表示计算文本的语义信息的时候 往往使用基于规则的方法 如 判断一个句子编译还是褒义 规
  • ninja: error: ‘system/bt/EventLogTags.logtags‘, needed by ‘out/target/common/obj/all-event-log-tags.

    项目场景 编译环境 ubuntu18 04 软件版本 全志SDK 安卓版本8 1 0 linux 4 9 0 问题描述 编译SDK时遇到这个问题 97 43 44 glob device Android bp ninja error sys
  • (HTML5)第一章

    HTML5秘籍 第一部分适合浏览器升级时参考 参考网址 H5API https github com Modernizr Modernizr wiki HTML5 Cross browser Polyfills 书本案例 http www
  • vue el-input表单验证禁止输入空格

    element ui 中自带的表单必填项校验输入空格时 依然能逃过验证 required true还是可以通过 需要再 在v model 加上 trim 来禁止输入空格字符 加上之后则不能输入空格
  • 唐老师讲运算放大器(第五讲)——运放的应用

    一 常见运放的应用 二 运放用于电源降压 图示的D1为2 5V稳压管 若VIN 12V 那么运放的同相输入端为2 5V 又虚短可知 反向输入端的电压也为2 5V 那么Rfb2和Rfb1中间节点的电压为2 5V 此时 有运算放大器的性质可知
  • 知识蒸馏 (一) 综述

    一 综述 Knowledge Distillation A Survey 2021 IJCV Knowledge Distillation and Student Teacher Learning for Visual Intelligen
  • 《C和指针》笔记29:数组名和指针

    看下面的代码 int b 10 b 4 的类型是整型 但b的类型又是什么 它所表示的又是什么 一个合乎逻辑的答案是它表示整个数组 但事实并非如此 在C中 在几乎所有使用数组名的表达式中 数组名的值是一个指针常量 也就是数组第1个元素的地址
  • 斐波那契数列求和--C语言

    include
  • 服务器net0显示linkdown,某局点S10500交换机设备接口up/down的trap中没显示端口号信息...

    某客户使用我司S10500系列交换机 在使用过程中 用户配置了SNMP网管服务器 同时将设备的告警信息发送给网管服务器 在使用过程中发现 部分设备的接口变化的告警信息中没有具体接口号相关信息 只有接口索引值 如下为客户现场S10500交换机
  • 【Unity项目】登录界面

    数据库 登录时验证用户名和密码 使用MySQL数据库管理数据 类中的主要方法也都是使用SQL语句完成 类中还提供两个接口 一个通过username获取UserInfo 一个是直接获取到排行榜 数据库连接类 using System usin
  • Java中的Thread类

    目录 一 什么是Thread类 二 Thread类的基本用法 三 线程的并发执行 一 什么是Thread类 在java标准库中 提供了一个Thread类 用来表示 操作线程 Thread类可以视为是Java标准库提供的API Java是支持
  • img图片在限定尺寸下等比缩放;点击查看原图

    一 图片等比缩放 效果 html div class row img src div div class row div 查看原图 div div css 对img外层div尺寸限制 img长宽自适应 imgbox max width 10
  • Vue脚手架

    安装 前提 Node js安装 打开想要建脚手架的文件夹 把文件夹的地址改为cmd打开终端输入以下代码 1 执行npm install g vue cli安装脚手架 2 安装完成后 可以使用vue version 3 我们测试下 在桌面创建
  • 微软网盘onedrive

    将微软网盘 做成一个共享网站 好处就是可以分享大文件 而且还不限制下载速度 如果你受够了百度网盘的限速 可以试试这个 来看看常见的几款Onedrive网盘程序 1 OneIndex 第一个微软网盘分享程序 php编写 兼容性好 我在用 作者
  • Qt鼠标事件

    新建桌面应用程序testMouseEvent 类名MouseEvent 基类QMainWindow 通过重写鼠标事件达到跟踪鼠标位置的效果 添加2个标签做转态及位置更新用 重写鼠标事件 mouseevent h ifndef MOUSEEV
  • 早早踏入刷脸支付市场的人收获颇丰

    支付行业是永远不会萧条的行业 因为只要市场上存在交易 有资金流通就需要支付工具的支撑 不仅如此 支付行业的收入十分稳定 它产生的利润不会受商品价位变化的周期性影响 无论商家经营好坏 它的利润都是保持不变的 所以支付行业对于一些追求持续稳定利
  • 基于python的数字图像处理--学习笔记(三)

    基于python的数字图像处理 学习笔记 三 前言 一 灰度拉伸 二 幂律 伽马 变换 三 对数变换 前言 进入冈萨雷斯的第三章内容 并用python实现功能 我更改了代码源 之前找到太烂了 代码全是错 现在使用的代码很清晰 功能也很全 一
  • pytorch: where、gather函数

    一 where函数 torch where condition x y out x if condition is 1 y if condition is 0 In 29 cond torch rand 2 2 In 30 cond Out