理解张量,并将张量与线性代数的知识连接起来,我认为最重要的是理解 tensor 的两个属性:shapendim

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 中张量(向量/矩阵)的乘法请看这篇博文

最新文章

  1. java基础 集合 ArrayList 增删改除
  2. 去掉iPhone、iPad的默认按钮样式 去掉高光样式:
  3. Gradle中使用idea插件的一些实践
  4. C语言 百炼成钢3
  5. Could not load file or assembly 'System.Web.Mvc' or one of its dependencies. The located assembly's manifest definition does not
  6. eclipse--解决Android模拟器端口被占用问题的办法
  7. iOS不勾选设置,实现某个界面强制横屏
  8. underscorejs-min学习
  9. 15 3Sum(寻找三个数之和为指定数的集合Medium)
  10. windows8.1 下搭建配置apache+php+mysql
  11. java积累
  12. C++的标准模板库(STL)简介
  13. Got Stucked in C++ Static Library Loading.. for some time
  14. 理解redis高可用方案
  15. PHP数组笛卡尔积组合排列
  16. 记一次tomcat运行起来了但是项目没起来的问题
  17. linux之正则
  18. Redis深入学习笔记(六)Redis内存分配
  19. Spring Bean的生命周期例子
  20. js基本方法

热门文章

  1. 2021年SpringBoot面试题200道及答案
  2. Activity Fragment Service生命周期图
  3. fiddler-ios13以上信任证书后无法抓取https包
  4. HttpServletResponse接口详解
  5. Tomcat下载安装以及配置方法
  6. golang中math常见数据数学运算
  7. CentOS7搭建Docker私有仓库----Docker
  8. linux中rpm安装
  9. 用8个命令调试Kubernetes集群
  10. stram流char[]保存,支持中文,Filestram需要先转byte[]才能使用,但是性能更好《转载》