【pytorch11】高阶操作

高阶操作

  • Where
  • Gather

where

三个参数,第一个是condition,第二个参数是源头A,第三个参数是源头B,也就是说有两项数据A和B,C有可能来自于A也有可能来自于B,如果全部来自于A的话直接赋值给A,如果部分来自A的话可以例如C[0]=A[0],C[1]=B[1],如果C[0,0,1]=A[0,0,1],C[0,0,2]=B[0,0,2],C[0,0,3]=A[0,0,3]说明C的来源是比较乱的,没有一个特别好的规律,把这个乱的规则写在condition表里,condition的shape与A和B是一样的

在这里插入图片描述
在这里插入图片描述
为什么需要这个操作?
没有一个很好规则来帮助你赋值,简单的复制方法是不可行的,使用Python的逻辑控制比如for,比如用双重for循环加条件语句C[i,j]=A[i,j],但是存在一个问题,这段代码是运行在CPU上的就没有GPU的加速功能,因此要完成这样一个简单的分别采样或者分别取值的过程,照python代码的情况是用CPU控制的没有并行,生成一个condition,赋值语句就可以高度并行化

例如有一个场景,有一张表存储的是动物的名字[dog,cat,whale],但是pytoch是没有string类型的这里只是示意,通过神经网络得到相对编号的索引比如说第一个动物得到的索引是1那就意味着是cat,第二个动物对应的索引是0那就是对应的dog,第三个动物对应的索引是1,第四个动物得到的索引是2,即[1,0,1,2],表一共有3个种类,但是我们要查4次操作,所以查表的操作会生成[cat,dog,cat,whale]所以生成的shape和你提供要查找的shape是一样的,这个查表的操作是一个收集的操作,根据1收集索引为1的cat以此类推,因此这就是gather设计的初衷,gather([dog,cat,whale],dim=0,[1,0,1,2]),通过这三个参数就可以很好的生成查表的操作,pytorch矩阵运算没有这种操作可以完成这个功能,因此gather设计为了GPU的方式实现这个功能

在这里插入图片描述

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

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

相关文章

算法金 | Transformer,一个神奇的算法模型!!

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 抱个拳,送个礼 在现代自然语言处理(NLP)领域,Transformer 模型的出现带来了革命性的变…

推送本地代码库到gitee

方式一: 1、在gitee创建代码库 2、下拉到本地 git clone https:xxxx 3、将要上传的代码复制进去 4、git add . 5、git commit -m 6、git push -u origin master 成功 方式二: 1、在gitee创建代码库 2、将要上传的代码库执行 git init 3、gi…

无线物联网练习题

文章目录 选择填空简答大题 选择 不属于物联网感知技术的是(A) A:ZigBee B:红外传感器 C:FRID D:传感器 ZigBee是一种无线通信技术,虽然它常用于物联网中作为设备之间的通信手段,但它本身并不是一种感知技术 关于物联网于与互联网的区别的描述&#xff…

【机器学习】基于Transformer的迁移学习:理论与实践

引言 在机器学习领域,迁移学习已成为提升模型训练效率和性能的重要策略,特别是在标注数据稀缺的场景下。Transformer模型自2017年由Google提出以来,在自然语言处理(NLP)领域取得了突破性进展,并逐渐扩展到…

map和set的底层实现

前言 map和set的底层都是由红黑树构成&#xff0c;但是map是kv模型&#xff0c;set是k模型。如何用一颗子树来同时封装map和set&#xff0c;还有怎么实现map/set的迭代器是这节重点 map和set的模板参数 struct MapKeyOfT{const K& operator()(const pair<K, V>&am…

XF 533-2012 挡烟垂壁

挡烟垂壁是指用不燃材料制成&#xff0c;垂直安装在建筑顶棚、横梁或吊顶下&#xff0c;能在火灾时形成一定的蓄烟空间的挡烟分隔设施。 XF 533-2012 挡烟垂壁测试项目 测试要求 测试标准 外观 XF 533 材料 XF 533 尺寸与极限偏差 XF 533 漏烟量 XF 533 耐高温性能 …

Zuul介绍

Zuul 是 Netflix 开源的一个云平台网络层代理&#xff0c;它主要用于路由、负载均衡、中间件通信和动态路由。Zuul 本质上是一个基于 JVM 的网关&#xff0c;它提供了以下功能&#xff1a; 1.路由&#xff1a;Zuul 允许客户端和服务器之间的所有入站和出站请求通过一个中心化的…

gbase8s数据库中根据系统表查看锁的现状和锁资源的监控(包括了两个onstat -g的关键命令和锁的查看演示)

1. 锁资源信息的查找和监控 1.1. 系统表中关于锁的信息 1.1.1. 当前正在占用锁资源和等待锁资源信息的系统表syslocks和测试 > select * from sysmaster:syslocks; dbsname test --数据库名称 tabname test --锁发生的表名称 rowidlk 6918 --发生锁的行号 keynum …

小红书怎么保存无水印图?

使用小红书APP长按保存的图片代有水印&#xff0c;很多人想知道保存小红书无水印图片的方法。本文教你如何保存到无水印的小红书图片&#xff0c;但是请注意不要侵犯作者图片的版权。 小红书怎么保存无水印图&#xff1f; 1、手机上打开小红书APP&#xff1b; 2、打开后&#…

昇思25天学习打卡营第13天|BERT

一、简介&#xff1a; BERT全称是来自变换器的双向编码器表征量&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;&#xff0c;它是Google于2018年末开发并发布的一种新型语言模型。与BERT模型相似的预训练语言模型例如问答、命名实体识别、自…

2.3章节Python中的数值类型

1.整型数值 2.浮点型数值 3.复数   Python中的数值类型清晰且丰富&#xff0c;主要分为以下几种类型&#xff0c;每种类型都有其特定的用途和特性。 一、整型数值 1.定义&#xff1a;整数类型用于表示整数值&#xff0c;如1、-5、100等。 2.特点&#xff1a; Python 3中的…

Quartz表达式:定时任务调度的高级配置与应用

Quartz表达式&#xff1a;定时任务调度的高级配置与应用 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. Quartz表达式概述 Quartz是一个强大的开源作业调…

卡尔曼滤波公式推导笔记

视频见B站上DR_CAN的卡尔曼滤波器 【卡尔曼滤波器】3_卡尔曼增益超详细数学推导 &#xff5e;全网最完整_哔哩哔哩_bilibili

动手学深度学习5.6 GPU-笔记练习(PyTorch)

以下内容为结合李沐老师的课程和教材补充的学习笔记&#xff0c;以及对课后练习的一些思考&#xff0c;自留回顾&#xff0c;也供同学之人交流参考。 本节课程地址&#xff1a;17 使用和购买 GPU【动手学深度学习v2】_哔哩哔哩_bilibili 本节教材地址&#xff1a;5.6. GPU —…

数据库定义语言(DDL)

数据库定义语言&#xff08;DDL&#xff09; 一、数据库操作 1、 查询所有的数据库 SHOW DATABASES;效果截图&#xff1a; 2、使用指定的数据库 use 2403 2403javaee;效果截图&#xff1a; 3、创建数据库 CREATE DATABASE 2404javaee;效果截图&#xff1a; 4、删除数据…

玩转springboot之springboot热部署

springboot热部署 热部署是在服务器运行时重新部署项目&#xff0c;直接加载整个应用&#xff0c;会释放内存&#xff0c;不过比较耗时 配置tomcat实现热部署 有三种方式 方式一 把项目web文件放在webapps目录下 方式二 在tomcat\conf\server.xml中的<host>标签内添加<…

面向阿克曼移动机器人(自行车模型)的LQR(最优二次型调节器)路径跟踪方法

线性二次调节器&#xff08;Linear Quadratic Regulator&#xff0c;LQR&#xff09;是针对线性系统的最优控制方法。LQR 方法标准的求解体系是在考虑到损耗尽可能小的情况下, 以尽量小的代价平衡其他状态分量。一般情况下&#xff0c;线性系统在LQR 控制方法中用状态空间方程描…

opencv c++ python获取摄像头默认分辨率及设置缩放倍数

c代码 #include <opencv2/opencv.hpp> #include <iostream>int main() {// 创建一个VideoCapture对象cv::VideoCapture cap(0); // 参数0表示打开默认摄像头// 检查摄像头是否成功打开if (!cap.isOpened()) {std::cerr << "Error: Could not open came…

Android super.img结构及解包和重新组包

Android super.img结构及解包和重新组包 从Android10版本开始&#xff0c;Android系统使用动态分区&#xff0c;system、vendor、 odm等都包含在super.img里面&#xff0c;编译后的最终镜像不再有这些单独的 image&#xff0c;取而代之的是一个总的 super.img. 1. 基础知识 …

【Unity】RPG2D龙城纷争(七)关卡编辑器之剧情编辑

更新日期:2024年7月1日。 项目源码:第五章发布(正式开始游戏逻辑的章节) 索引 简介一、剧情编辑1.对话数据集2.对话触发方式3.选择对话角色4.设置对话到关卡5.通关条件简介 严格来说,剧情编辑不在关卡编辑器界面中完成,只不过它仍然属于关卡编辑的范畴。 在我们的设想中…