Pytorch数据结构:Tensor

文章目录

  • Tensor基础
    • 1.1、Tensor的维度(Dimensions)
      • 1.1.1、举例说明
      • 1.1.2、高维Tensor
    • 1.2、.dim()和.size()方法
      • 1.2.1、.dim()方法
      • 1.2.2、.size()方法
      • 1.2.3、.shape属性
      • 1.2.3、示例代码
        • 1.2.3.1、一维Tensor
        • 1.2.3.2、二维Tensor
        • 1.2.3.3、三维Tensor
    • 1.3、Tensor数据类型
    • 1.4、观察维度
      • 1.4.1、直接访问

本文参考于: 与凤行——灵界碧苍王:Pytorch教程

Tensor基础

Tensor(张量) 是PyTorch中用于表示多维数据的主要数据结构,类似于多维数组,可以存储和操作数字数据。

1.1、Tensor的维度(Dimensions)

  Tensor的维度可以理解为Tensor包含的数据在不同方向上的层次或级别。在数学和计算机科学中,维度通常用来描述数据结构的复杂性或者数据在空间中的方向。对于Tensor来说,每一个维度都代表了数据的一个特定的方向或特性。
  Tensor(张量)的维度(Dimensions)是指张量的轴数或阶数。可以类似用坐标轴来理解,可以类比的用坐标轴理解,即Tensor有多少个方向。比如1维,x轴只有一个方向;2维,x轴y轴,两个方向,x轴固定长度;3维,x轴y轴z轴,三个方向,x轴和y轴固定长度。

基本的tensor创建,以便于后续学习:

import torch
x=torch.tensor(data)#利用data创建tensor,data可以是各总维度的列表,或一个常数

1.1.1、举例说明

  • 0维Tensor:也就是一个标量(Scalar),它没有维度,仅仅是一个单一的数值。例如,温度值、价格或者某个计数。
    • 举例说明:torch.tensor(1)torch.tensor(2)
  • 1维Tensor:也称作向量(Vector),它有一个维度,可以看作是一系列数值的集合。例如,一维数组 [1, 2, 3] 代表一系列数值或某个特性的不同测量值。
    • 举例说明:torch.tensor([1,2,3,4,5])torch.tensor([15,2,3,4,5,51])
  • 2维Tensor:也称作矩阵(Matrix),它有两个维度,可以表示为行和列。例如,在表格数据中,行可能代表不同的样本,列代表不同的特征或观察值。注意,由于列代表了不同的特征,因此每一行的元素数必须相同,每一行是一个一维的。相当于多个一维构成一个二维。
    • 举例说明:torch.tensor([ [1,2,5],[3,4,2] ]),暂且可以理解为这里有两行分别为[1,2,5]和[3,4,2],这是一个2×3的矩阵。
  • 3维Tensor:可以想象为一个数据立方体,常用于表示时间序列数据、图像数据等。例如,在处理图像时,一个3维Tensor可能有三个维度:高度、宽度和颜色通道。相当于多个二维构成一个三维,每个二维的性状必须相同。
    • 举例说明:torch.tensor([ [[1,2],[3,4]] , [[3,3][2,2]] ]),一个三维中,有两个二维,这是一个2×2×2的三维Tensor。

1.1.2、高维Tensor

随着维度的增加,Tensor可以表示更加复杂的数据结构。例如,在深度学习中,经常会处理4维Tensor来表示一批图像数据,其中维度分别代表样本数、高度、宽度和颜色通道。在自然语言处理(NLP)任务中,可能会使用3维或更高维度的Tensor来表示句子、单词和特征向量。

1.2、.dim()和.size()方法

在PyTorch中,.dim().size()方法用于获取Tensor的维度信息,但它们提供了不同类型的信息:

1.2.1、.dim()方法

  • .dim()方法返回Tensor的维度数,即Tensor有多少轴。(类似多少个坐标轴)
  • 对于一个给定的Tensor,.dim()告诉你这个Tensor是几维的
  • 例如,如果你有一个2D Tensor(比如一个矩阵),.dim()将返回2;如果是一个3D Tensor(比如一个时间序列数据集),.dim()将返回3。

1.2.2、.size()方法

  • .size()方法返回一个Tensor每个维度的大小(长度),以torch.Size类型表示,其实质是一个元组。 (类似告诉你 每一个坐标轴的长度,不过是按照z,y,x的方式给出的。z个矩形,y行,x列,更高维以此类推)
  • 它提供了关于Tensor每个轴的具体大小的详细信息。如果你想知道一个Tensor的形状,比如有多少行和列,你会使用.size()
  • .size()可以返回全部维度的大小,也可以通过指定维度的索引来返回特定维度的大小。例如,对于一个形状为(3, 4, 5)的3D Tensor,.size()将返回torch.Size([3, 4, 5]),而.size(1)将仅返回第二维(即4行)的大小。

1.2.3、.shape属性

  • .shape属性 和 直接调用.size()返回的是一样的。

1.2.3、示例代码

1.2.3.1、一维Tensor
import torch
oneD=torch.tensor([1,3,4,5,5,6,6,0])
print(".size()方法:",oneD.size())
print("一维张量的大小:",oneD.size(0))
print(type(oneD.size()))
print("一维张量的维数:",oneD.dim())
print(type(oneD.dim()))

在这里插入图片描述

1.2.3.2、二维Tensor
import torch
oneD=torch.tensor([[1,3,4,5,5,6,6,0],[1,3,4,5,5,6,6,8],[1,3,4,5,5,6,6,0]])#3×8
print(".size()方法:",oneD.size())
print("二维张量最外层元素数:",oneD.size(0))
print("二维张量的维数:",oneD.dim())

在这里插入图片描述
tensor的维度信息是[3, 8],表示矩阵的大小为3x8。通过调用dim()方法,我们可以得到张量的轴数,这里是2。

1.2.3.3、三维Tensor
import torch
oneD=torch.tensor([ [[1,2],[2,3],[2,3]],[[3,4],[5,6],[2,3]] ])#2×3×2
print(".size()方法:",oneD.size())
print("三维张量最外层元素数:",oneD.size(0))
print("三维张量的维数:",oneD.dim())

在这里插入图片描述
tensor的维度信息是[2, 3, 2],表示有2个矩阵,每个矩阵的大小为3x2。通过调用dim()方法,我们可以得到张量的轴数,这里是3。

1.3、Tensor数据类型

在这里插入图片描述

  • 在创建张量时,可以通过dtype参数指定数据类型:
import torch
x = torch.tensor( [1, 2, 3], dtype=torch.float32 )
print(x)
print(x.dtype)

在这里插入图片描述

1.4、观察维度

在这里插入图片描述

1.4.1、直接访问

有 Python内置类型——序列 的操作,从内到外索引:
在这里插入图片描述
当然还有切片操作。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Go】十五、接口、多态、断言

文章目录 1、接口的引入2、接口3、接口的注意点4、多态5、断言6、Type Switch 1、接口的引入 以日常生活中打招呼为例,定义接口规范,各国人为打招呼为具体的实现 package main import "fmt"//接口的定义:定义规则、定义规范&…

存内领域前沿,基于忆阻器的存内计算----浅析忆阻存内计算

目录 一.概念浅析 二.忆阻器的分类 三.基于忆阻器的存内计算原理 四.存内计算的实验研究 一.概念浅析 1.存内计算 存内计算(In-Memory Computing,简称 IMC)是一种将数据处理和存储紧密结合在一起的计算方式。它的主要思想是在存储设备中直…

Navicat设置mysql权限

新建用户: 注意:如果不生效执行刷新命令:FLUSH PRIVILEGES; 执行后再重新打开查看; 查询权限命令:1234为新建的用户名,localhost为访问的地址 SHOW GRANTS FOR 1234localhost;如果服务器设置服务器权限后可能会出现权…

某东手势验证

地球上最强版!!!!!!!! 成功率99 基本不失败!!!!!!!!!! 识别速…

ZCMU操作系统课程实验 - 实验1-Linux的使用

登录 1. 打开这个东西 2. 在 文件 - > 打开 中打卡机房里VMOS文件里的这个东东 3. 然后依次操作下去好了,有红色的选项,我都是选的"Do nothing"。完成后就会出现这样一个黑框框。 4. 让你登录。输入:root。密码&…

Excel制作甘特图

使用Excel表格制作甘特图,可根据任务开始时间和结束时间自动计算工时,并自动用指定颜色填充横道图。 1.新建Excel文档,先设置项目基本信息,包括表格名称,这里设置为“**项目甘特图”;然后添加任务序号列&a…

前后端实现下拉框带条件查询(Vue+Java)

目录 前言1. 前端2. 后端 前言 对于该基本知识熟门熟路,对此总结一套自身的模版如下 总体逻辑如下:通过前端下拉框或者其他组合框(多选勾选查询),将条件返回给后端处理,后端查询数据库,查询得…

【Servlet】Servlet入门

文章目录 一、介绍二、入门案例导入servlet-api的解决办法 一、介绍 概念:server applet,即:运行在服务器端的小程序 Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。 将来我们定义…

bugku-web-速度要快

发现phpsessid 从上述提示 提示发送post请求,并且带有参数margin 发送后发现报文头部有一个字段叫flag,但好像每一次flag都不一样 构建Python脚本 request requests.Session()data {margin:find, } for i in range(50):html request.post(urlhttp:/…

JS详解-class-类的核心语法关于ES6与ES5

class基本核心语法: //定义类class Person{//公有属性(推荐此处定义)name// 定义属性并设置默认值price 100//构造函数constructor(name,age){// 构造函数内部的this实例化对象this.name namethis.age age// 动态添加属性(不推荐,查找麻烦)this.rank …

位运算算法(1)

目录 一、算法简述 191. 位1的个数 一、题目描述 二、思路解析 三、代码 338.比特位计数 一、题目描述 二、思路解析 三、代码 461.汉明距离 一、题目描述 二、思路解析 三、代码 声明:本博客涉及到的三道题均为一种做法的总结,建议先了解做…

ansible-tower安装

特别注意:不需要提前安装ansible,因为ansible tower中的setup.sh脚本会下载对应的ansible版本 ansible tower不支持Ubuntu系统,对cenos系统版本也有一定的限制,建议使用centos7.9。 准备一台全新的机器安装,因为ansible tower需要…

RISC-V/ARM mcu OpenOCD 调试架构解析

Risc-v/ARM mcu OpenOCD 调试架构解析 最近有使用到risc-v的单片机,所以了解了下risc-v单片机的编译与调试环境的搭建,面试时问到risc-v的调试可参看以下内容。 risc-v根据官方的推荐,调试器服务是选择OpenOCD,DopenOCD(开放片上…

2024多功能知识付费源码下载

多功能知识付费源码下载实现流量互导多渠道变现 源码介绍 资源变现类产品的许多优势,并剔除了那些无关紧要的元素,使得本产品在运营和变现能力方面实现了质的飞跃。多领域素材资源知识变现营销裂变独立版本。 支持:视频、音频、图文、文档…

【机器学习】揭秘无监督学习:机器如何自我学习发现数据奥秘

无监督学习:全面解析 引言 在机器学习的众多分支中,无监督学习因其在未标记数据上发现隐藏模式的能力而独树一帜。它不依赖于事先标记的输出,而是通过分析数据本身的结构和分布来揭示内在的关系和分类。本文深入探讨无监督学习的核心概念、…

2013年认证杯SPSSPRO杯数学建模C题(第一阶段)公路运输业对于国内生产总值的影响分析全过程文档及程序

2013年认证杯SPSSPRO杯数学建模 C题 公路运输业对于国内生产总值的影响分析 原题再现: 交通运输作为国民经济的载体,沟通生产和消费,在经济发展中扮演着极其重要的角色。纵观几百年来交通运输与经济发展的相互关系,生产水平越高…

学透Spring Boot 003 —— Spring 和 Spring Boot 常用注解(附面试题和思维导图)

这是 学透 Spring Boot 专栏 的第三篇,欢迎关注我,与我一起学习和探讨 Spring Boot 相关知识,学透 Spring Boot。 从面试题说起 今天我们通过一道和Spring Boot有关的常见面试题入手。 面试题:说说 Spring Boot 中有哪些常用注解…

图解PyTorch中的torch.gather函数和 scatter 函数

前言 torch.gather在目前基于 transformer or query based 的目标检测中,在最后获取目标结果时,经常用到。 这里记录下用法,防止之后又忘了。 介绍 torch.gather 官方文档对torch.gather()的定义非常简洁 定义:从原tensor中获…

[Java基础揉碎]注解

目录 介绍 基本的Annotation介绍 1) Override:限定某个方法,是重写父类方法,该注解只能用于方法 2) Deprecated: 用于表示某个程序元素(类,方法等)已过时 3) SuppressWarnings:抑制编译器警告 四大元注解 ​编辑 Retention ​编辑​编辑 Docume…

【MySQL】MySQL故障排查与环境优化

案例 MySQL是目前企业最常见的数据库之一 日常维护管理的过程中,会遇到很多故障 mysql默认配置无法满足高性能要求 数据流向 MySQL常见的故障案例 故障一 故障现象: ERROR 2002 (HY000): Cant connect to local MySQL server through socket data/m…