当前位置: 首页 > news >正文

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

PyTorch深度学习总结

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


文章目录

  • PyTorch深度学习总结
  • 一、前言
  • 二、获取张量中的元素
    • 1、切片(行、列数)方法
    • 2、torch.where()函数
    • 3、使元素置零的操作


一、前言

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


二、获取张量中的元素

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

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

生成张量A:
tensor(
[[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])


现截取A[0]:

print(A[0]) # 截取最外围括号内第一个括号的内容,第一个维度第一行的内容

结果为:
tensor([0, 1, 2])

# 引入库
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]:

print(B[0]) # 截取最外围括号内第括号的内容,第一个维度第一行的内容

结果为:
tensor(
[[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])

③根据上文张量B进行截取

print(B[0, 1:2, 1:2])

结果为:
tensor([[4]])
注意此时[1:2]指第2个元素开头到第三个元素为至,且不包含第三个元素。(属于包含左边不包含右边,先行后列)


print(B[0, 1:3, 1:2])

结果为:
tensor([[4], [7]])


print(B[0, -1, -2])

结果为:
tensor(7)


print(B[0, -3:-1, -2]) # 第一个维度,倒数第三行到倒数二行,倒数第二列的元素

结果为:
tensor([1, 4])

④通过比较关系输出元素

print(B[B>=3])

结果为:
tensor([3, 4, 5, 6, 7, 8])
注意此处为获取元素组成1维张量

2、torch.where()函数

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():

E1 = torch.tril(B, diagonal=0)
print(E1)

输出结果为:
tensor(
[[[0, 0, 0],
[3, 4, 0],
[6, 7, 8]]])


E2 = torch.tril(B, diagonal=1)
print(E2)

输出结果为:
tensor(
[[[0, 1, 0],
[3, 4, 5],
[6, 7, 8]]])

torch.triu():

F = torch.triu(B, diagonal=0)
print(F)

输出结果为:
tensor(
[[[0, 1, 2],
[0, 4, 5],
[0, 0, 8]]])

torch.diag():

H = torch.diag(A)
print(H)

输出结果为:
tensor([0, 4, 8])


http://www.lryc.cn/news/298712.html

相关文章:

  • GeoServer 2.11.1升级解决Eclipse Jetty 的一系列安全漏洞问题
  • 【蓝桥杯选拔赛真题34】C++最大值 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析
  • STM32之USART
  • unity 点击事件
  • idea自带的HttpClient使用
  • vue3-应用规模化-路由和状态
  • 网络安全检查表
  • SSM框架,Maven的学习(下)
  • Vivado开发FPGA使用流程、教程 verilog(建立工程、编译文件到最终烧录的全流程)
  • C语言之动态内存管理
  • 【AIGC风格prompt深度指南】掌握绘画风格关键词,实现艺术模仿的革新实践
  • Qt安装配置教程windows版(包括:Qt5.8.0版本,Qt5.12,Qt5.14版本下载安装教程)(亲测可行)
  • SpringCloud-Ribbon实现负载均衡
  • Qt网络编程-TCP与UDP
  • Promise 常见题目
  • 五大架构风格之五:仓库架构风格
  • 探索设计模式的魅力:外观模式简化术-隐藏复杂性,提供简洁接口的设计秘密
  • java之Maven
  • Elasticsearch(四)
  • 蓝桥杯-X图形
  • 2. Maven 继承与聚合
  • 如何把手机平板变为电脑的屏幕
  • Amazon Dynamo学习总结
  • appium抓包总结
  • arcgis各种版本下载
  • 第五篇:MySQL常见数据类型
  • Oracle用BETWEEN AND查某年的数据可能会丢失条数
  • Nuscenes数据集点云数据如何转换到图像上
  • 【C语言期末】商品管理系统
  • 单片机学习笔记---串口通信(2)