Pytorch学习笔记【3】 --tensor切片

Tensor多维slice切片操作 本博客是记录个人学习slice list对多维tensor进行切片的操作,只是通过程序验证了自己的猜想,但是未能找到相关的其他参考资料,希望有相关参考文献的朋友可以留言给我,感激不尽~ 阅读详情

Pytorch学习笔记【3】 --tensor切片

Pytorch笔记目录:点位进入

1. indexing 索引

类似于list的索引操作,tensor也可以使用类似的方法获取tensor中的数值

# create a 4-dim  tensor
a = torch.rand(4,3,28,28)
print(a[0].shape)
out:
torch.Size([3, 28, 28])
print(a[0][0].shape)
out:
torch.Size([28, 28])
print(a[0,0,2,4])
out:
tensor(0.2295)

2. 切片

可以通过切片的方式获取tensor中的某一段数据

# select first/last N
a[:2].shape
out:
torch.Size([2, 3, 28, 28])
a[:2,:1,:,:].shape
out:
torch.Size([2, 1, 28, 28])
a.shape
torch.Size([4, 3, 28, 28])
# select by steps
a[:,:,0:28:2,0:28:2].shape
torch.Size([4, 3, 14, 14])

3. …

…可以表示获取当前位置的所有,下面看一个事例

# ... all
a[...].shape
out:
torch.Size([4, 3, 28, 28])
a[0,...].shape
out:
torch.Size([3, 28, 28])

4. 通过掩码来处理

要实现mask操作首先我们需要创建一个规格和你要处理的tensor相同的tensor,然后再进行处理, 程序会输出所有mask值为1的地方

# select by mask
x = torch.randn(3,4)
mask = x.ge(0.5)
print(torch.masked_select(x,mask))
out:
tensor([1.0916, 0.6544, 0.9824, 1.4880, 0.5094])

flatten index

通过散列的index来获取数值,这种方法的规则就是把多维的向量打平进行计算,当然不会经常用到,3维以上就很难计算了

# select by flatten index
src = torch.tensor([[4,3,5],
[6,7,8]])
print(torch.take(src,torch.tensor([0,2,5])))
out:
tensor([4, 5, 8])
Pytorch框架之narrow--沿轴切片tensor torch.narrow(input, dim, start, length) → Tensor 阅读详情

相关推荐

pytorch 的tensor的索引,切片,连接,换位 Indexing, Slicing,Joining, Mutating Ops

如果输入是形如(A * 1 * B * 1 * C * 1 * D),那么输出形状就为:(A * B * C * D),当指定 dim 时,那么挤压操作只在给定维度上。返回张量与输入张量共享内存,所以改变其中一个的内容会改变另一个。在给定的维度上对输入的张量序列 seq 进行拼接操作。如果输入 input 有 n 维,则输出的索引张量 output 的形状为 z * n,其中 z 是输入张量 input 中所有非零元素的个数。返回一个新张量,对输入的指定位置插入维度 1。将输入张量形状中的1去除并返回。

weixin_43915090的博客 1268

tensor 切片操作(用tensor去切片)

tensor 切片操作(用tensor去切片)

weixin_50764885的博客 1924

PyTorch学习笔记(一)——Tensor的基础语法

目录一、张量的创建1.1 直接从数据中创建 一、张量的创建 1.1 直接从数据中创建 data = [1, 2, 3] torch.tensor(data) # tensor([1, 2, 3])

⚡ 1398

从 X 入门Pytorch——Tensor的索引,切片,拼接,拆分,Reduction操作

本文汇总了Tensor常见的索引,切片,拼接和拆分操作,同时给出了示例进行演示

Philo的博客 1万+

麒麟信安3.3-6C电网版虚拟机安装避坑指南:从ISO下载到SSH配置全流程

本文提供麒麟信安3.3-6C电网版虚拟机的详细安装与配置指南。针对电力行业仿真测试需求,重点解析从ISO镜像获取、虚拟机环境准备、安装过程中的三大“雷区”(如多管理员密码逻辑、分区方案、网络配置)到首次启动后的网络、SSH及root策略配置的全流程避坑要点,帮助技术人员高效、安全地完成部署。

rainy的博客 855

【AI基础学习系列】二十一、一文搞懂GPT

本文系统介绍了GPT(Generative Pre-trained Transformer)模型的核心内容。首先阐述了GPT的本质是基于Transformer的预训练语言模型,其创新在于使用单向Transformer编码器。其次详细解析了GPT架构,包括输入层的Tokenization和Embedding处理、Transformer解码器堆叠的核心组件(自注意力机制、前馈神经网络等)以及预训练和微调两阶段训练过程。接着说明了GPT的工作原理:通过无监督预训练学习语言统计规律,再结合有监督微调适应具体任务。

ASH_GUARDIAN的博客 1689

一、Tensor的使用

Tensor的使用

m0_51321564的博客 2613

Docker 安装 CentOS7

本文主要介绍了docker 下安装centos7。访问 CentOS 镜像库地址:https://hub.docker.com/_/centos?tab=tags&page=1。可以通过 Sort by 查看其他版本的 CentOS 。默认是最新版本 centos:latest 。 使用以下命令来查看是否已安装了 centos7: 启动centos容器,并把docker上centos的22端口映射到本机60001端口(端口号可以自己指定) 3、进入到Centos容器 4.安装ssh服务和网络必须软件

折腾java的博客 1万+

Tensor高阶用法:快速掌握Tensor切分、变形等方法

Tensor高阶用法:快速掌握Tensor切分、变形等方法

weixin_42136255的博客 2913

【Kingbase人大金仓】授权文件更换

本文介绍了金仓数据库授权文件更换的步骤:1.通过ksql或客户端工具查询数据库版本;2.在官网下载对应版本的license.bat文件;3.替换前先备份原授权文件(使用tar命令压缩),再用新文件覆盖原文件。注意事项包括:版本号需严格对应,授权文件通常位于安装目录下,可使用find命令查找具体位置。操作需谨慎,建议先备份原文件以便恢复。

qq_34463511的博客 3469

钢铁雄心4存档修改全攻略:从基础设置到高级玩法(附国家代码表)

本文详细解析《钢铁雄心4》存档修改技巧,从基础设置到高级玩法全覆盖。包括存档文件位置、格式转换、国家实力调整、国际关系修改等实用内容,并附赠国家代码表。掌握存档修改技能,解锁游戏全部潜力,实现精细参数控制,超越控制台指令的局限。

weixin_29233857的博客 1435

pytorch学习笔记3 tensor索引和切片

2 表示 0到2(不包含2), 1:表示 1到末尾, -1表示最后一个元素,-2表示倒数第二个。表示任意都维度(根据原数据shape和给定形式推断),且都是满选。]其实=a[:,1,:,:]=a[:,1]]其实=a[0,:,:,:]=a[0]0:28:2 表示从0到27隔点采样。::2 表示从头到尾隔点采样。上图在0维上取0和2两个元素。

Leo@Apas 613

《网络存储技术》形考实训4:为小微企业搭建基于Windows Server的文件共享与权限管理服务

本文介绍了在域环境下部署DFS分布式文件系统的完整流程。项目目标是将3台存储服务器(NS1、NS2、NS3)上的多个共享文件夹通过DFS命名空间进行统一整合,使员工可通过单一访问路径访问所有资源。实施步骤包括:1)搭建AD域环境并创建用户/组;2)将存储服务器加入域并配置共享权限;3)在域控制器安装DFS命名空间角色;4)创建基于域的命名空间(\xc.cn\共享);5)将各服务器共享文件夹映射到命名空间;6)进行客户端访问验证。通过DFS实现了物理存储位置不变情况下的逻辑统一访问,提高了文件管理的便捷性和可

深耕计算机专业知识与技术。 946

【PyTorch学习笔记】3.在Tensor上的索引和切片

参考博文:https://blog.youkuaiyun.com/SHU15121856/article/details/87810372 一般索引 从前往后提供的索引,会依次在每个维度上做索引。 import torch a = torch.rand(4, 3, 28, 28) print(a[0].shape) print(a[0, 0].shape) print(a[0, 0, 2, 4]) # 具...

qq_16739693的博客 379

蓝鸟四轴飞控系统C程序V3.0(基础版本)深度解读

2. 解析遥控通道数据(油门 / 横滚 / 俯仰 / 偏航),转换为标准化值(-1000~+1000);3. 封装PID初始化(PID_Init,配置KP/KI/KD、输出限幅、积分限幅);,包含姿态角(Attitude_Data.Roll/Pitch/Yaw)、角速度(Gyro_Data.X/Y/Z)、遥控值(RC_Data[0~5])、电池电压(Bat_Volt)、电机PWM值(Motor_PWM[0~3])、系统状态(Sys_State),校验和通过Check_Sum()函数计算;

搏博的专栏 344

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【PyTorch学习笔记】4:在Tensor上的索引和切片

在Tensor上的索引和切片 一般索引 从前往后提供的索引,会依次在每个维度上做索引。 import torch a = torch.rand(4, 3, 28, 28) print(a[0].shape) print(a[0, 0].shape) print(a[0, 0, 2, 4]) # 具体到某个元素 运行结果: torch.Size([3, 28, 28]) torch.Size(...

大桔骑士的学习笔记 2万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Pytorch中Tensor的索引,切片以及花式索引(fancy indexing)

对pytorch中tensor的索引切片,以及更为高级的花式索引的理解

qq_44875293的博客 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Pytorch Tensor的索引与切片

1. Pytorch风格的索引 根据Tensor的shape,从前往后索引,依次在每个维度上做索引。 示例代码: import torch a = torch.rand(4, 3, 28, 28) print(a[0].shape) #取到第一个维度 print(a[0, 0].shape) # 取到二个维度 print(a[1, 2, 2, 4]) # 具体到某个元素 上述代码创建...

洪流之源 6万+

Pytorch Tensor的索引和切片

假设我们定义这样一个tensor import torch a = torch.rand(4, 3, 28, 28) print(a[0].shape) print(a[0, 0].shape) print(a[0, 0, 2, 4]) # 具体到某个元素

zhuguiqin1的专栏 3187

Pytorch基础:Tensor的连续性

PyTorch中张量的连续性是指元素在内存中的存储顺序与其在张量中的位置一致。连续张量的元素地址可通过线性映射确定,默认情况下张量是连续的。使用.is_contiguous()方法可快速检查连续性。非连续张量常由张量视图操作(如转置、切片等)引起,这些操作共享底层数据但改变存储顺序。reshape()等方法可能返回视图或新张量。contiguous()方法可将非连续张量转为连续,必要时复制数据。理解张量连续性对内存布局敏感的操作(如卷积)尤为重要。

保持终身学习的能力,温故而知新 1687

Pytorch基础:Tensor的transpose()方法

PyTorch中transpose()方法用于交换张量的两个维度,返回转置后的新张量。该方法既可作为Tensor类方法也可作为torch模块函数使用。转置操作会共享原张量的存储空间,修改任一对象都会影响另一个。与permute()不同,transpose()仅能交换两个维度,而permute()支持多维度重排。转置后的张量可能变为非连续状态,需用is_contiguous()检查。对于稀疏张量,转置操作不共享存储空间,且对压缩布局的稀疏张量有特殊维度限制要求。

保持终身学习的能力,温故而知新 5947

pytorch学习笔记之tensor的创建与切片

直接粘贴代码,其中创建tensor的创建方法不全,有需要的查找,每一行为一个创建方法,每行的第二个#号之后print函数内的操作为对tensor的操作,之后为输出结果,最后为操作的粗略解释 import torch # a = torch.randn(3,4) #创建一个3*4的张量,其中元素为随机的正太数 # a = torch.full([2,2],2) #生成2*2,元素值都为2的张量 # b = torch.Tensor(2,2) # a = torch.arange(0,10,

qq_42191909的博客 749

【PyTorch】PyTorch中张量(Tensor)切片操作

上文介绍了PyTorch中改变张量(Tensor)形状的操作,本文主要介绍张量切片操作。

goldfisheye的博客 5406

Pytorch入门——Tensor的基本操作

本文基于具体的Python代码,分别讨论Pytorch中张量Tensor的基本概念、创建方式、属性和主要操作。

m0_72303604的博客 1501

Pytorch基础:Tensor的permute()方法

PyTorch中的permute()方法用于对张量维度进行转置,返回与原张量共享存储的新视图对象。该方法支持任意维度的重排,与仅能交换两个维度的transpose()方法相比更为灵活。需要注意的是,permute()操作可能导致新张量不连续,且新旧张量数据共享存储,修改任一对象都会影响另一个。通过示例代码展示了permute()的基本用法和特性,包括对象ID比较、存储地址验证以及连续性检测等。

保持终身学习的能力,温故而知新 4292
上一篇: Numpy API整理大全
下一篇: Pytorch学习笔记【4】---tensor维度变换
AndSonder
博客等级 码龄7年 364粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值