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

PyTorch深度学习总结

第三章 PyTorch中张量(Tensor)切片操作


文章目录


一、前言

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


二、获取张量中的元素

1、切片(行、列数)方法

python 复制代码
# 引入库
import torch

# 生成张量
A = torch.arange(9).reshape(3, 3)
print(A)

生成张量A:

tensor(

\[0, 1, 2\], \[3, 4, 5\], \[6, 7, 8\]\]) *** ** * ** *** 现截取A\[0\]: ```python print(A[0]) # 截取最外围括号内第一个括号的内容,第一个维度第一行的内容 ``` **结果为:** tensor(\[0, 1, 2\]) ② ```python # 引入库 import torch # 生成张量 B = torch.arange(9).reshape(1, 3, 3) print(B) ``` **生成张量B:** tensor( \[\[\[0, 1, 2\], \[3, 4, 5\], \[6, 7, 8\]\]\]) *** ** * ** *** 现截取B\[0\]: ```python print(B[0]) # 截取最外围括号内第括号的内容,第一个维度第一行的内容 ``` **结果为:** tensor( \[\[0, 1, 2\], \[3, 4, 5\], \[6, 7, 8\]\]) ③根据上文张量B进行截取 ```python print(B[0, 1:2, 1:2]) ``` **结果为:** tensor(\[\[4\]\]) `注意此时[1:2]指第2个元素开头到第三个元素为至,且不包含第三个元素。(属于包含左边不包含右边,先行后列)` *** ** * ** *** ```python print(B[0, 1:3, 1:2]) ``` **结果为:** tensor(\[\[4\], \[7\]\]) *** ** * ** *** ```python print(B[0, -1, -2]) ``` **结果为:** tensor(7) *** ** * ** *** ```python print(B[0, -3:-1, -2]) # 第一个维度,倒数第三行到倒数二行,倒数第二列的元素 ``` **结果为:** tensor(\[1, 4\]) ④通过比较关系输出元素 ```python print(B[B>=3]) ``` **结果为:** tensor(\[3, 4, 5, 6, 7, 8\]) `注意此处为获取元素组成1维张量`

2、torch.where()函数

python 复制代码
C = -B
D = torch.where(B>4, B, C)
print(D)

输出结果为:

tensor(

\[\[ 0, -1, -2\], \[-3, -4, 5\], \[ 6, 7, 8\]\]\])

3、使元素置零的操作

函数 描述
torch.tril(A, diagonal=0) 将A以第一个元素为对角线的直线,将上三角置零
torch.triu(A, diagonal=0) 将A以第一个元素为对角线的直线,将下三角置零
torch.diag(A) 保留对角线,将其他元素全部置零,输入必须是二维张量

示例:

torch.tril():

python 复制代码
E1 = torch.tril(B, diagonal=0)
print(E1)

输出结果为:

tensor(

\[\[0, 0, 0\], \[3, 4, 0\], \[6, 7, 8\]\]\]) *** ** * ** *** ```python E2 = torch.tril(B, diagonal=1) print(E2) ``` 输出结果为: tensor( \[\[\[0, 1, 0\], \[3, 4, 5\], \[6, 7, 8\]\]\]) **torch.triu():** ```python F = torch.triu(B, diagonal=0) print(F) ``` 输出结果为: tensor( \[\[\[0, 1, 2\], \[0, 4, 5\], \[0, 0, 8\]\]\]) **torch.diag():** ```python H = torch.diag(A) print(H) ``` 输出结果为: tensor(\[0, 4, 8\])


相关推荐
Cha0DD6 分钟前
【由浅入深探究langchain】第二十集-SQL Agent+Human-in-the-loop
人工智能·python·ai·langchain
Cha0DD7 分钟前
【由浅入深探究langchain】第十九集-官方的SQL Agent示例
人工智能·python·ai·langchain
2601_9492210323 分钟前
Splashtop赋能企业级远程办公全场景安全连接成选型优选
运维·人工智能·安全
阿拉斯攀登41 分钟前
YOLO 视觉检测全栈核心名词指南:从训练调参到边缘部署,商用落地必懂
人工智能·yolo·计算机视觉·视觉检测·bytetrack
AAAAA92401 小时前
2026年车载机器人行业:技术突破与生态融合加速发展
人工智能·机器人·制造
科研实践课堂(小绿书)1 小时前
机器学习在智能水泥基复合材料中的应用与实践
人工智能·机器学习·复合材料·水泥基·混凝土
AI医影跨模态组学1 小时前
Hepatology(IF=16.8)复旦大学附属中山医院孙惠川、徐彬等团队:基于MRI影像组学动态变化预测HCC免疫治疗后病理完全缓解
人工智能
百万蹄蹄向前冲1 小时前
让TypeScript 再次伟大:愚人节前夜Claude Code意外开源与OpenClaw小龙虾打造 AI 原生开发新纪元
人工智能·typescript·node.js
智算菩萨1 小时前
【Tkinter】4 Tkinter Entry 输入框控件深度解析:数据验证、密码输入与现代表单设计实战
python·ui·tkinter·数据验证·entry·输入框
墨韵流芳1 小时前
CCF-CSP第41次认证第三题——进程通信
c++·人工智能·算法·机器学习·csp·ccf