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

闽侯网站建设台州网站设计 解放路

闽侯网站建设,台州网站设计 解放路,聊城有什么网站制作公司,wordpress的sslPyTorch中的张量具有和NumPy相同的广播特性,允许不同形状的张量之间进行计算。 广播的实质特性,其实是低维向量映射到高维之后,相同位置再进行相加。我们重点要学会的就是低维向量如何向高维向量进行映射。 相同形状的张量计算 虽然我们觉…

在这里插入图片描述

PyTorch中的张量具有和NumPy相同的广播特性,允许不同形状的张量之间进行计算。

广播的实质特性,其实是低维向量映射到高维之后,相同位置再进行相加。我们重点要学会的就是低维向量如何向高维向量进行映射

相同形状的张量计算

虽然我们觉得不同形状之间的张量计算才是广播,但其实相同形状的张量计算本质上也是广播。

t1 = torch.arange(3)
t1
# tensor([0, 1, 2])# 对应位置元素相加
t1 + t1
# tensor([0, 2, 4])

与Python对比

如果两个list相加,结果是什么?

a = [0, 1, 2]
a + a
# [0, 1, 2, 0, 1, 2]

不同形状的张量计算

广播的特性是不同形状的张量进行计算时,一个或多个张量通过隐式转化成相同形状的两个张量,从而完成计算。

但并非任意两个不同形状的张量都能进行广播,因此我们要掌握广播隐式转化的核心依据。

2.1 标量和任意形状的张量

标量(零维张量)可以和任意形状的张量进行计算,计算过程就是标量和张量的每一个元素进行计算。

# 标量与一维向量
t1 = torch.arange(3)
# tensor([0, 1, 2])t1 + 1 # 等效于t1 + torch.tensor(1)
# tensor([1, 2, 3])
# 标量与二维向量
t2 = torch.zeros((3, 4))
t2 + 1 # 等效于t2 + torch.tensor(1)
# tensor([[1., 1., 1., 1.],
#         [1., 1., 1., 1.],
#         [1., 1., 1., 1.]])

2.2 相同维度,不同形状张量之间的计算

我们以t2为例来探讨相同维度、不同形状的张量之间的广播规则。

t2 = torch.zeros(3, 4)
t2
# tensor([[0., 0., 0., 0.],
#         [0., 0., 0., 0.],
#         [0., 0., 0., 0.]])t21 = torch.ones(1, 4)
t21
# tensor([[1., 1., 1., 1.]])

它们都是二维矩阵,t21的形状是1×4t2的形状是3×4,它们在第一个分量上取值不同,但该分量上t21取值为1,因此可以进行广播计算:

t2 + t21
# tensor([[1., 1., 1., 1.],
#        [1., 1., 1., 1.],
#        [1., 1., 1., 1.]])

而t2和t21的实际计算过程如下:

在这里插入图片描述

可理解为t21的一行与t2的三行分别进行了相加。而底层原理为t21的形状由1×4拓展成了t23×4,然后二者对应位置进行了相加。

t22 = torch.ones(3, 1)
t22
# tensor([[1.],
#         [1.],
#         [1.]])t2 + t22
# tensor([[1., 1., 1., 1.],
#         [1., 1., 1., 1.],
#         [1., 1., 1., 1.]])

同理,t22+t2t21+t2结果相同。如果矩阵的两个维度都不相同呢?

t23 = torch.arange(3).reshape(3, 1)
t23
# tensor([[0],
#         [1],
#         [2]])t24 = torch.arange(3).reshape(1, 3)
# tensor([[0, 1, 2]])t23 + t24
# tensor([[0, 1, 2],
#         [1, 2, 3],
#         [2, 3, 4]])

此时,t23的形状是3×1,而t24的形状是1×3,二者的形状在两个份量上均不同,但都有1存在,因此可以广播:

在这里插入图片描述

如果两个张量的维度对应数不同且都不为1,那么就无法广播。

t25 = torch.ones(2, 4)
# t2的shape为3×4
t2 + t25
# RuntimeError

高维张量的广播

高维张量的广播原理与低维张量的广播原理一致:

t3 = torch.zeros(2, 3, 4)
t3
# tensor([[[0., 0., 0., 0.],
#          [0., 0., 0., 0.],
#          [0., 0., 0., 0.]],#         [[0., 0., 0., 0.],
#         [0., 0., 0., 0.],
#         [0., 0., 0., 0.]]])t31 = torch.ones(2, 3, 1)
t31
# tensor([[[1.],
#          [1.],
#          [1.]],#         [[1.],
#          [1.],
#          [1.]]])t3+t31
# tensor([[[1., 1., 1., 1.],
#          [1., 1., 1., 1.],
#          [1., 1., 1., 1.]],#         [[1., 1., 1., 1.],
#          [1., 1., 1., 1.],
#          [1., 1., 1., 1.]]])

总结

维度相同时,如果对应分量不同,但有一个为1,就可以广播。

不同维度计算中的广播

对于不同维度的张量,我们首先可以将低维的张量升维,然后依据相同维度不同形状的张量广播规则进行广播。

低维向量的升维也非常简单,只需将更高维度方向的形状填充为1即可:

# 创建一个二维向量
t2 = torch.arange(4).reshape(2, 2)
t2
# tensor([[0, 1],
#         [2, 3]])# 创建一个三维向量
t3 = torch.zeros(3, 2, 2)
t3t2 + t3
# tensor([[[0., 1.],
#          [2., 3.]],#         [[0., 1.],
#          [2., 3.]],#         [[0., 1.],
#          [2., 3.]]])

t3t2的相加,就相当于1×2×23×2×2的两个张量进行计算,广播规则与低维张量一致。

相信看完本节,你已经充分掌握了广播机制的运算规则:

  • 维度相同时,如果对应分量不同,但有一个为1,就可以广播
  • 维度不同时,只需将低维向量的更高维度方向的形状填充为1即可

Pytorch张量操作大全:

Pytorch使用教学1-Tensor的创建
Pytorch使用教学2-Tensor的维度
Pytorch使用教学3-特殊张量的创建与类型转化
Pytorch使用教学4-张量的索引
Pytorch使用教学5-视图view与reshape的区别
Pytorch使用教学6-张量的分割与合并
Pytorch使用教学7-张量的广播
Pytorch使用教学8-张量的科学运算
Pytorch使用教学9-张量的线性代数运算
Pytorch使用教学10-张量操作方法大总结

在这里插入图片描述

http://www.yayakq.cn/news/688035/

相关文章:

  • ps设计师网站广告制作协议
  • 洛阳网站建设优化案例网站建设类的公司名怎么起
  • 加快建设企业门户网站建龙岩市城乡建设局网站进不去
  • 内销网站要怎么做js 转wordpress
  • 阿里巴巴怎么做不花钱的网站intellij idea做网站
  • 网站上那些兼职网页怎么做的天元建设集团有限公司商票
  • 手机网站默认全屏导购网站开发
  • 网站设计的书wordpress 还是织梦
  • 企业网站设计优化公司云服务器建立多个网站
  • 厦门同安网站制作企业咨询公司logo
  • 做网站用什么语言制作最安全?怎样做网站备份
  • 浙江创都建设有限公司网站网站版权备案
  • 网站文件命名wordpress 后台制作
  • 南宁网站建设教学wordpress the author
  • 网站的按钮怎么做 视频wordpress 多标签
  • 网站建设应该怎么做wordpress主题制作 工具
  • 网店网站怎么做的南山门票多少钱
  • js商城网站免费制作手机app
  • 买网站名称沈阳微网站建设
  • 网站线框图软件农产品营销方案
  • 聊城网站空间公司网站怎么算抄袭
  • 单位网站建设制作文军seo
  • 公司网站建设制作paypal绑定wordpress
  • 临沂建设工程质量 监督网站雅诗兰黛网络营销策划方案
  • 山东做网站建设公司排名河西网站建设优化seo
  • 哪个网站可以做练习题国内seo公司排名
  • 企业网站定制开发流程中东跨境电商平台有哪些
  • 做母婴网站设计思路钢材销售网站建设
  • 一学一做看视频网站有哪些泸州市建设工程质量监督站网站
  • 大型购物网站设计做设计学什么英语比较好的网站