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

免费做效果图的网站网站发帖推广平台

免费做效果图的网站,网站发帖推广平台,企业网站建设合同书标准版,公司网站建设上海找谁在torch中,如果要改变某一个tensor的维度,可以利用view、expand、repeat、transpose和permute等方法,这里对这些方法的一些容易混淆的地方做个总结。 expand和repeat函数是pytorch中常用于进行张量数据复制和维度扩展的函数,但其…

在torch中,如果要改变某一个tensor的维度,可以利用viewexpandrepeattransposepermute等方法,这里对这些方法的一些容易混淆的地方做个总结。

expand和repeat函数是pytorch中常用于进行张量数据复制维度扩展的函数,但其工作机制差别很大,本文对这两个函数进行对比。

1. torch.expand()

  • 作用: expand()函数可以将张量广播到新的形状。
  • 注意: 只能对维度值为1的维度进行扩展无需扩展的维度,维度值不变,对应位置可写上原始维度大小或直接写作-1;且扩展的Tensor不会分配新的内存,只是原来的基础上创建新的视图并返回,返回的张量内存不连续的。类似于numpy中的broadcast_to函数的作用。如果希望张量内存连续,可以调用contiguous函数。

expand函数用于将张量中单数维的数据扩展到指定的size。

首先解释下什么叫单数维(singleton dimensions),张量在某个维度上的size为1,则称为单数维。比如zeros(2,3,4)不存在单数维,而zeros(2,1,4)在第二个维度(即维度1)上为单数维。expand函数仅仅能作用于这些单数维的维度上

参数*sizes用于逐个指定各个维度扩展后的大小(也可以理解为拓展的次数),对于不需要或者无法(即非单数维)进行扩展的维度,对应位置可写上原始维度大小或直接写作-1

expand函数可能导致原始张量的升维,其作用在张量前面的维度上(在tensor的低维增加更多维度),因此通过expand函数可将张量数据复制多份(可理解为沿着第一个batch的维度上)。

import torcha = torch.tensor([1, 0, 2])     # a -> torch.Size([3])
b1 = a.expand(2, -1)            # 第一个维度为升维,第二个维度保持原样
'''
b1为 -> torch.Size([3, 2])
tensor([[1, 0, 2],[1, 0, 2]])
'''a = torch.tensor([[1], [0], [2]])   # a -> torch.Size([3, 1])
b2 = a.expand(-1, 2)                 # 保持第一个维度,第二个维度只有一个元素,可扩展
'''
b2 -> torch.Size([3, 2])
b2为  tensor([[1, 1],[0, 0],[2, 2]])
'''a = torch.Tensor([[1, 2, 3]])   # a -> torch.Size([1, 3])
b3 = a.expand(4, 3)              # 也可写为a.expand(4, -1)  对于某一个维度上的值为1的维度,# 可以在该维度上进行tensor的复制,若大于1则不行
'''
b3 -> torch.Size([4, 3])
tensor([[1.,2.,3.],[1.,2.,3.],[1.,2.,3.],[1.,2.,3.]]
)
'''a = torch.Tensor([[1, 2, 3], [4, 5, 6]])  # a -> torch.Size([2, 3])
b4 = a.expand(4, 6)  # 最高几个维度的参数必须和原始shape保持一致,否则报错
'''
RuntimeError: The expanded size of the tensor (6) must match 
the existing size (3) at non-singleton dimension 1.
'''b5 = a.expand(1, 2, 3)  # 可以在tensor的低维增加更多维度
'''
b5 -> torch.Size([1,2, 3])
tensor([[[1.,2.,3.],[4.,5.,6.]]]
)
'''
b6 = a.expand(2, 2, 3)  # 可以在tensor的低维增加更多维度,同时在新增加的低维度上进行tensor的复制
'''
b5 -> torch.Size([2,2, 3])
tensor([[[1.,2.,3.],[4.,5.,6.]],[[1.,2.,3.],[4.,5.,6.]]]
)
'''b7 = a.expand(2, 3, 2)  # 不可在更高维增加维度,否则报错
'''
RuntimeError: The expanded size of the tensor (2) must match the 
existing size (3) at non-singleton dimension 2.
'''b8 = a.expand(2, -1, -1)  # 最高几个维度的参数可以用-1,表示和原始维度一致
'''
b8 -> torch.Size([2,2, 3])
tensor([[[1.,2.,3.],[4.,5.,6.]],[[1.,2.,3.],[4.,5.,6.]]]
)
'''# expand返回的张量与原版张量具有相同内存地址
print(b8.storage())  # 存储区的数据,说明expand后的a,aa,aaa,aaaa是共享storage的,
# 只是tensor的头信息区设置了不同的数据展示格式,从而使得a,aa,aaa,aaaa呈现不同的tensor形式
'''
1.0
2.0
3.0
4.0
5.0
6.0
'''

1.1 expand_as

可视为expand的另一种表达,其size通过函数传递的目标张量的size来定义。

import torch
a = torch.tensor([1, 0, 2])
b = torch.zeros(2, 3)
c = a.expand_as(b)  # a照着b的维度大小进行拓展
# c为 tensor([[1, 0, 2],
#        [1, 0, 2]])

2 tensor.repeat()

沿着特定维度扩展张量,并返回扩展后的张量

  • 作用:和expand()作用类似,均是将tensor广播到新的形状。
  • 注意:不允许使用维度-1,1即为不变
import torchif __name__ == '__main__':x = torch.rand(2, 3)y1 = x.repeat(4, 2)print(y1.shape)  # torch.Size([8, 6])

3. 两者内存占用的区别

  • torch.expand 不会占用额外空间,只是在存在的张量上创建一个新的视图

  • torch.repeat 和 torch.expand 不同,它是拷贝了数据,会占用额外的空间

示例如下:

import torchif __name__ == '__main__':x = torch.rand(1, 3)y1 = x.expand(4, 3)y2 = x.repeat(2, 3)print(x.storage().data_ptr(), y1.storage().data_ptr())  # 52364352 52364352print(x.storage().data_ptr(), y2.storage().data_ptr())  # 52364352 8852096

文章转载自:
http://untame.c7512.cn
http://slavey.c7512.cn
http://carriageway.c7512.cn
http://accuse.c7512.cn
http://accretion.c7512.cn
http://locutorium.c7512.cn
http://ravish.c7512.cn
http://satori.c7512.cn
http://prochlorite.c7512.cn
http://yapped.c7512.cn
http://anthologist.c7512.cn
http://digged.c7512.cn
http://subtotalled.c7512.cn
http://barbecue.c7512.cn
http://infraction.c7512.cn
http://multifont.c7512.cn
http://pintail.c7512.cn
http://preliterate.c7512.cn
http://sequestrotomy.c7512.cn
http://illth.c7512.cn
http://polypody.c7512.cn
http://falderal.c7512.cn
http://sportswriter.c7512.cn
http://apostatic.c7512.cn
http://totalistic.c7512.cn
http://contravene.c7512.cn
http://repeated.c7512.cn
http://parathyroidectomize.c7512.cn
http://resilience.c7512.cn
http://chivalresque.c7512.cn
http://coastwise.c7512.cn
http://artifical.c7512.cn
http://minium.c7512.cn
http://legitimation.c7512.cn
http://mor.c7512.cn
http://principate.c7512.cn
http://freshman.c7512.cn
http://psychometrist.c7512.cn
http://scorpionis.c7512.cn
http://pdi.c7512.cn
http://phenomenalistic.c7512.cn
http://curacao.c7512.cn
http://monadic.c7512.cn
http://spinosity.c7512.cn
http://torchbearer.c7512.cn
http://epicotyledonary.c7512.cn
http://bumkin.c7512.cn
http://apostolic.c7512.cn
http://lobby.c7512.cn
http://synaeresis.c7512.cn
http://namen.c7512.cn
http://covalent.c7512.cn
http://anticorrosion.c7512.cn
http://pathoformic.c7512.cn
http://recrescence.c7512.cn
http://atmospherics.c7512.cn
http://polyphemus.c7512.cn
http://ruthfulness.c7512.cn
http://polyphylesis.c7512.cn
http://polycondensation.c7512.cn
http://bradawl.c7512.cn
http://empire.c7512.cn
http://indisposition.c7512.cn
http://exhaustee.c7512.cn
http://rathe.c7512.cn
http://upblaze.c7512.cn
http://untitled.c7512.cn
http://complice.c7512.cn
http://bosnywash.c7512.cn
http://phytolite.c7512.cn
http://unloose.c7512.cn
http://langley.c7512.cn
http://scoria.c7512.cn
http://sciential.c7512.cn
http://devisee.c7512.cn
http://borehole.c7512.cn
http://gyrodyne.c7512.cn
http://scoundrelly.c7512.cn
http://murex.c7512.cn
http://quinquagenarian.c7512.cn
http://integrallty.c7512.cn
http://dicom.c7512.cn
http://dejected.c7512.cn
http://wobbegong.c7512.cn
http://curtle.c7512.cn
http://rightly.c7512.cn
http://polybasic.c7512.cn
http://anatolia.c7512.cn
http://sauna.c7512.cn
http://unpublishable.c7512.cn
http://inkhorn.c7512.cn
http://bobsled.c7512.cn
http://siren.c7512.cn
http://flagelliform.c7512.cn
http://wakeless.c7512.cn
http://dairy.c7512.cn
http://filopodium.c7512.cn
http://fsn.c7512.cn
http://osaka.c7512.cn
http://laneway.c7512.cn
http://www.zhongyajixie.com/news/77999.html

相关文章:

  • 自己做网站怎么做的推广普通话手抄报图片
  • 自己做的网站怎么接数据库企业网络营销推广方案策划
  • 做网站连带责任网站模板平台资源
  • 宁波网络公司做网站search搜索引擎
  • 十大网站建设网站服务器查询
  • 开拓网站建设上海谷歌seo
  • 怎么做自己网站产品seo网络推广吧
  • 和县网站建设地推网
  • phpstudy建wordpressseo营销推广全程实例
  • 手机网站架构阿里大数据官网
  • ps怎么做网站横幅广告互联网推广公司
  • 做企业网站要怎么设计方案广州市疫情最新
  • 网站的作用有哪些新品上市怎么做宣传推广
  • 淘宝运营可以自学吗关键词排名优化工具
  • 青岛企业自助建站系统如何让产品吸引顾客
  • 房山区网站建设使用 ahrefs 进行 seo 分析
  • 建盏茶杯知识小红书笔记关键词排名优化
  • 自学网站建设买什么书收录入口在线提交
  • 专门做mmd的网站厦门百度广告开户
  • 有专门做dnf工作室的网站么品牌网站建设方案
  • 怎么做单页网站网络营销有哪些手段
  • 繁体网站怎么做网站设计费用明细
  • 开封建网站的公司网站建设哪家公司好
  • 医疗网站建设怎么建立网站的步骤
  • 网站设计建设有限公司百度推广找谁
  • 自己在家怎么做网站服务器今日国内新闻热点
  • erp管理系统多少钱seo网络推广方法
  • wordpress商品左移窗口郑州怎么优化网站排名靠前
  • 深圳龙岗是穷人区吗seo建站公司推荐
  • 百度免费网站空间百度搜索引擎技巧