PyTorch 如何理解张量:一维张量、二维张量、行/列向量、矩阵
2024-08-31 12:25:10
理解张量,并将张量与线性代数的知识连接起来,我认为最重要的是理解 tensor
的两个属性:shape
和 ndim
。
ndim
表示张量的维度,一维张量的 ndim
值为 1,二维张量的 ndim
值为 2。
shape
表示张量的形状,它的值是一个列表,列表元素个数与张量的维度相等,每一个元素值表示张量在此维度的元素个数。
举例来说:
>>> tensor = torch.randn(3, 2, 2)
>>> tensor
tensor([[[ 1.1070, -1.3736],
[-1.6743, 1.4504]],
[[ 0.0119, -0.1400],
[ 0.5095, -0.8208]],
[[-1.5840, -0.2786],
[ 2.3791, -1.4570]]])
>>> tensor.ndim
3
>>> tensor.shape
torch.Size([3, 2, 2])
对于这样一个张量,它有三个维度,shape = 3 × 2 × 2
,这表示此张量有三个二维张量,每个二维张量中有两个一维张量,每个一维张量中有两个元素。
然后我们从线性代数的角度来理解张量:
由于行向量和列向量都是向量,而向量在 PyTorch
中被抽象为一维张量,因此在 PyTorch
中不区分行向量和列向量,一律都是一维张量。
初学者可能会将 torch.Size(1, n)
的张量认为是行向量,将 torch.Size(n, 1)
的张量认为是列向量,然而这两种张量的 ndim = 2
,因此它们是二维张量,可以类比为线性代数中的矩阵。甚至于 torch.Size(1, 1)
的张量都是矩阵,因为它是二维张量。
关于 PyTorch
中张量(向量/矩阵)的乘法请看这篇博文。
最新文章
- java基础 集合 ArrayList 增删改除
- 去掉iPhone、iPad的默认按钮样式 去掉高光样式:
- Gradle中使用idea插件的一些实践
- C语言 百炼成钢3
- Could not load file or assembly 'System.Web.Mvc' or one of its dependencies. The located assembly's manifest definition does not
- eclipse--解决Android模拟器端口被占用问题的办法
- iOS不勾选设置,实现某个界面强制横屏
- underscorejs-min学习
- 15 3Sum(寻找三个数之和为指定数的集合Medium)
- windows8.1 下搭建配置apache+php+mysql
- java积累
- C++的标准模板库(STL)简介
- Got Stucked in C++ Static Library Loading.. for some time
- 理解redis高可用方案
- PHP数组笛卡尔积组合排列
- 记一次tomcat运行起来了但是项目没起来的问题
- linux之正则
- Redis深入学习笔记(六)Redis内存分配
- Spring Bean的生命周期例子
- js基本方法