【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])


现截取A0:

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]])


现截取B0:

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)


相关推荐
Pokerhead几秒前
如何评价 DeepSeek-V4 的价格?
人工智能·大模型·ai编程·deepseek
aiqianji3 分钟前
有哪些稳定的AI短篇小说写作软件可以推荐?
人工智能·python
蓝速科技4 分钟前
蓝速科技丨AI双屏翻译机:重塑线下接待的从容沟通体验
人工智能·科技
Nomarsgo6 分钟前
研华17寸工业显示器 FPM-217在智能制造产线中的应用方案
人工智能·科技·计算机视觉·视觉检测·电脑
ifenxi爱分析6 分钟前
爱分析发布2026年中国GEO市场研究报告
人工智能
石小石Orz11 分钟前
TRAE SOLO实战:实现一个桌面3D助手
前端·人工智能
武子康21 分钟前
Ask/Allow 不是安全边界:企业 Coding Agent 必须建立四层治理(Policy / Scoped Credential / Sandbox / Provenance)
人工智能·后端·agent
独隅22 分钟前
DevEco Code 在 Windows/MacOS 双系统上的完整使用指南
ide·人工智能·windows·macos·华为·harmonyos
数智顾问23 分钟前
(84页PPT)PWC海科集团生物医药业务5年发展战略项目建议书(附下载方式)
大数据·人工智能·物联网
Elastic 中国社区官方博客26 分钟前
使用重新设计的 AutoOps 更快地进行 Elasticsearch 问题排查
大数据·运维·前端·人工智能·elasticsearch·搜索引擎·全文检索