PyTorch - Tensor 张量

PyTorchTensor张量)介绍 Tensor 中文为张量张量的意思是一个,它是标量、向量、矩阵的高维扩展。标量可以称为 0 维张量,向量可以称为 1 维张量,矩阵可以称为 2 维张量,RGB 图像可以表示 3 维张量。你可以把张量看作多维数组。 阅读详情

Tensor

数据类型

  • data :
  • dtype :
  • shape :
  • device : 张量所在设备,GPU / CPU,是加速的关键
  • requires_grad :
  • grad :
  • grad_fn :
  • is_leaf :

创建方式

torch.tensor() : 直接创建

torch.tensor(							# 从data创建tensor
			data,						# data : 可以是list,numpy
			dtype = None,				# 数据类型,默认与data一致
			device = None,				# 所在设备
			requires_grad = False,		# 是否需要梯度
			pin_memory = False			# 是否存于锁页内存
)	

从数据创建

torch.from_numpy(ndarry)			# 从numpy创建tensor

注意 : 从torch.from_numpy(ndarry)创建的tensor与原ndarray共享内存

torch.rand: (0, 1)均匀分布创建

torch.randn: 标准正态分布创建

张量的拼接

torch.cat() : 在已有维度进行拼接

torch.cat(			# 在已有维度进行拼接
		tensors,	# 张量序列
		dim			# 维度
)
import torch

arr = torch.ones((2, 3))

arr_0 = torch.cat([arr, arr], dim=0)
arr_1 = torch.cat([arr, arr], dim=1)

print("arr:{} shape:{}\narr_0:{} shape:{}\narr_1:{} shape:{}".format(arr, arr.shape, arr_0, arr_0.shape, arr_1, arr_1.shape))

运行上述脚本结果:

F:\Anaconda\envs\pytorch_gpu\python.exe "F:/PyTorch Learning/hello pytorch/hello.py"
arr:tensor([[1., 1., 1.],
        [1., 1., 1.]]) shape:torch.Size([2, 3])
arr_0:tensor([[1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.]]) shape:torch.Size([4, 3])
arr_1:tensor([[1., 1., 1., 1., 1., 1.],
        [1., 1., 1., 1., 1., 1.]]) shape:torch.Size([2, 6])

Process finished with exit code 0

torch.stack() : 新建维度进行拼接

torch.stack(			# 在已有维度进行拼接
		tensors,	# 张量序列
		dim			# 维度
)
import torch

arr = torch.ones((2, 3))

arr_0 = torch.stack([arr, arr], dim=0)
arr_1 = torch.stack([arr, arr], dim=1)

print("arr:{} shape:{}\narr_0:{} shape:{}\narr_1:{} shape:{}".
      format(arr, arr.shape, arr_0, arr_0.shape, arr_1, arr_1.shape))

运行上述脚本结果:

F:\Anaconda\envs\pytorch_gpu\python.exe "F:/PyTorch Learning/hello pytorch/hello.py"
arr:tensor([[1., 1., 1.],
        [1., 1., 1.]]) shape:torch.Size([2, 3])
arr_0:tensor([[[1., 1., 1.],
         [1., 1., 1.]],

        [[1., 1., 1.],
         [1., 1., 1.]]]) shape:torch.Size([2, 2, 3])
arr_1:tensor([[[1., 1., 1.],
         [1., 1., 1.]],

        [[1., 1., 1.],
         [1., 1., 1.]]]) shape:torch.Size([2, 2, 3])

Process finished with exit code 0

张量的切分

torch.chunk() : 按维度dim进行平均切分

torch.chunk(
			tensor,			# 要切分的张量
			chunks, 		# 平均切的份数
			dim				# 切分的维度
)

torch.split() : 按维度dim进行切分

torch.split(
			tensor,			# 要切分的张量
			split,			# int:按数值进行切分,list:按列表值切分
			dim				# 切分的维度
)

张量的索引

torch.index_select() : 按索引返回拼接后新的张量

torch.index_select(
			tensor,
			index,			# index_select(): argument 'index' must be Tensor, not list
			dim
)

torch.masked_select() : 按同形状布尔值Tensor返回一维张量

tensor(): argument ‘dtype‘ must be torch.dtype, not torch.tensortype torch.dtype和torch.tensortype的区别。 最近调试代码,报错TypeError: tensor(): argument ‘dtype’ must be torch.dtype, not torch.tensortype,原因则是因为在dtype参数中错误的传递了torch.tensortype。 PyTorch有十二种不同的数据类型,简单来说,torch.dtype是现行描述数据类型的形式,存在着Legacy Constructors,他们之间的对应关系如下: Data type 阅读详情

相关推荐

深度学习pytorch——Tensor张量)详解

Tensor,又名张量。它可以是一个数(标量)、一维数组(向量)、二维数组(矩阵)和更高维的数组(高阶数据)。Tensor和Numpy的ndarrays类似,但PyTorchtensor支持GPU加速。官方文档。

urge的博客 2448

解决报错:TypeError: log_sigmoid(): argument ‘input‘ (position 1) must be Tensor, not torch.return_types.

报错如下: TypeError: log_sigmoid(): argument 'input' (position 1) must be Tensor, not torch.return_types.max torch.max()的返回类型为 torch.return_types.max fused_scores = torch.max(scores, 0) 查看 fused_scores 的输出 fused_scores: torch.return_types.max( values=tensor

muli 5523

PyTorchTensor 张量

dtype (torch.dtype,可选) – 据类型。默认值:如果为 None,则使用全局默认值(请参阅 torch.set_default_dtype())。默认值:如果为None,则使用默认张量类型当前的设备(参见 torch.set_default_device())。最小值返回索引 tensor([2, 0, 0]),2 表示列第三个,0表示第二列第一个,最后一个0表示第三列第一个,最终可以获得 2,1,4 三个数据。最大值返回索引 tensor([1, 1, 2]),对应数据 7,7,9。

989

详解PyTorch Tensor 数据类型——张量

PyTorch中,视频可以被表示为一个5维的张量,其中第0维表示批次数,第1维表示帧数,第2维表示通道数,第3维表示高度,第4维表示宽度。在PyTorch中,图片可以被表示为一个4维的张量,其中第0维表示批次数,第1维表示通道数,第2维表示高度,第3维表示宽度。例如,一个形状为(1, 3, 224, 224)的张量可以表示一张RGB格式的224x224的图片。总之,不同类型的数据在计算机中都有自己的存储方式和编码方式,而在PyTorch中,这些数据都可以被表示为张量,并且可以方便地进行各种张量操作。

陈子青的博客 5514

TypeError: conv2d(): argument ‘input‘ (position 1) must be Tensor, not tuple

搭建网络过程遇到这个问题,检查训练过程,已经将输入数据通过 transforms.ToTensor() 转换为Tensor格式。 经检查发现是网络结构问题。 网络搭建过程中MaxPool2d()中设置return_indices=True,这意味着它将返回一个包含值和索引的元组。后面不能直接接卷积层。 ...

m0_58442599的博客 6528

Pytorch基础:张量Tensor

Pytorch基础:张量Tensor 1. 张量类(Tensor) 2. 数值类型 3. 创建方法 4. 类型转换 5. 维度分析 6. 常用操作

MechMaster 2188

Pytorch】 理解张量Tensor

介绍了什么是张量Tensor

阿润菜菜的博客 2375

PyTorchTensor张量

Tensor的概念 Tensor张量)是一个多维数组,它是标量、向量、矩阵的高维拓展。 标量是一个零维张量,是没有方向的,是一个数。一维张量只有一个维度,是一行或者一列。二维张量是一个矩阵,有两个维度,灰度图片就是一个二维张量。当图像是彩色图像(RGB)的时候,就得使用三维张量了。 Tensor与Variable 张量在数学中是多维数组,在pytorch中,张量不仅仅表示多维数组,张量还是py...

然后就去远行 4107

PyTorch 核心】张量 (Tensor) 的创建

函数名核心参数区间性质数据类型典型用途startendstep左闭右开自动推断 (Int/Float)循环索引、生成指定步长序列startendsteps左闭右闭浮点数 (Float)画图坐标轴、生成等分序列torch.randsize[0, 1)浮点数 (Float32)均匀分布初始化、概率模拟size−∞∞−∞∞(均值0方差1)浮点数 (Float32)标准正态分布初始化 (模型权重)lowhighsize左闭右开整数 (Long/Int64)生成随机索引、随机标签。

2301_78530027的博客 1377

Pytorch简介和张量Tensor

张量Tensor 各种数值数据统称为张量 常量:scaler:0阶张量 向量:vector:1阶张量 矩阵:matrix:2阶张量 一、使用: 使用python列表或者序列创建tensor(是浮点型) torch.tensor([1,2,3]) numpy生成再转换为tensor torch.tensor(np.array([[1,2,3],[4,5,6]])) 使用torch的api创建tensor 1、torch.empty(3,4)创建3行4列的的为空的tensor,会用无用数据进行

javascriptch的博客 720

Pytorch基础知识之张量Tensor的本质

以单个元素索引为例子,各维度索引值 × stride 的加和相等(等于线性内存偏移),无论一维、二维、多维。如下9这个元素在1维的索引是8,2维的索引是[2][0],3维的索引是[1][1][0]。从不同的角度看,叫法不同。深度学习角度看张量,本质上就是多维数组ndarray。先拆成两份,在对每一份拆成三份,剩下的自动拆分。N维数组是机器学习和神经网络的主要数据结构。这么多括号,看的人有点乱,下面说点直观。这么多括号,看的不舒服,我们来拆分。先拆成三份,再自动拆成了四份。

typical_yyc的博客 1525

PyTorch : 了解Tensor(张量)及其创建方法

文章目录 认识张量 Tensor与 Variable Tensor 张量的创建 一、直接创建 torch.tensor() torch.from_numpy(ndarray) 二、依据数值创建 2.1 torch.zeros() 2.2 torch.zeros_like() 2.3 torch. ones() 2.4 torch. ones_like() 2.5 torch. full() 2.6 torch.full_like() 2.7 torch. arange 2.8 torch. linspace

timerring的博客 1519

pytorch张量Tensor)的详解

张量深度学习和科学计算中的核心数据结构,本质上是多维数组的泛化形式,包括标量、向量、矩阵和高维数组。在PyTorchTensorFlow等框架中,张量支持高效数值计算和自动微分。张量的核心特性包括维度、数据类型、设备和梯度。创建张量可以通过直接定义、特殊初始化或从其他数据转换。

浩瀚之水的专栏 1518

pytorch----初识tensor张量(大致了解即可)

要展示代码运行的结果,我们需要运行代码。以下是假设运行上述代码片段可能得到的结果。请注意,这些结果是基于代码逻辑的预期输出,实际运行时可能会因为环境或其他因素有所不同。被沿着第0维(行)分割成两部分,前两行成为第一个张量,最后一行成为第二个张量。被沿着第0维(行)分割成三个部分,每部分包含一行。被沿着第1维(列)分割成三个部分,每部分包含一列。被沿着第0维(行)分割成两部分,每部分包含两行。首先,我们有以下张量

jzx_wzw的博客 1031

python pytorch 张量 (Tensor)

python 张量详解

我是Python虫!!! 1971

PyTorch使用教程(3)-Tensor

张量(Tensor)是PyTorch深度学习框架中的核心数据结构,在PyTorch软件框架中,几乎所有的数据计算和信息流都是以Tensor的形式在表达。

深图智能工作室 1658

torch.stack 和 torch.cat 错误:argument 'tensors' (position 1) must be tuple of Tensors, not Tensor

本篇博文介绍pytorch中一些函数的输入问题,主要是tensortensors的区别。 在pytorch中我们也有对一个数据的叠加: pytorch.stack ,这个函数可以在数据叠加的同时,扩展数据维度。比如说我们把三个数叠加到一起,可以组成一个二维的矩阵,得到的二维矩阵可以是[1, 2],也可以是[2, 1]。 pytorch.cat,这个函数是直接把两个数据连接起来,维度是不变的。...

月下花弄影 2万+
上一篇: pytorch的安装详细步骤
米么裤
博客等级 码龄9年 0粉丝 3原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值