博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pytorch-tensor处理速查表(cat stack squeeze unsqueeze permute等)
阅读量:4965 次
发布时间:2019-06-12

本文共 1421 字,大约阅读时间需要 4 分钟。

1 torch.cat

torch.cat((A, B), dim)

将两个tensor在指定维度进行拼接

A = torch.zeros(2,3)    B = torch.zeros(2,3)    C = torch.cat((A,B), 0) ## shape [4,3]    D = torch.cat((A,B), 1) ## shape [2,6]

2 torch.stack

torch.stack((A, B), dim)

增加新的维度进行堆叠

A = torch.zeros(1,3)B = torch.zeros(1,3)C = torch.stack((A,B), 0)  ## [2, 1, 3]D = torch.stack((A,B), 1)  ## [1, 2, 3]E = torch.stack((A,B), 2)  ## [1, 3, 2]

3 torch.permute

A = A.permute(0, 2, 3, 1)

调整tensor的维度顺序,相当于更灵活的transpose

A = torch.zeros(32, 3, 18, 18)  ## [32, 3, 18, 18]B = A.permute(0, 2, 3, 1)          ##[32, 18, 18, 3]

4 tensor.contiguous

view只能用在contiguous的tensor上。如果在view之前用了transpose, permute等,需要用contiguous()来返回一个contiguous copy。
eg:

v = v.permute(2, 0, 1, 3).contiguous().view(-1, len_v, d_v) # (n*b) x lv x dv

5 tensor.squeeze

A = A.squeeze(dim)

去掉tensor的维度为1的维度,该维度可以通过参数dim指定,也可以不加参数,默认找到维度为1的维度然后去掉

A = torch.zeros(1, 18, 18)  ## [1, 18, 18]B = A.squeeze(0)               ## [18, 18]

6 tensor.unsqueeze

A = A.unsqueee(dim)

在tensor中增加一个新的指定维度,新维度放在指定位置 原来维度序列向两边移动

A = torch.zeros(2, 3, 4)   ## [2, 3, 4]B = A.unsqueeze(0)    ## [1, 2, 3, 4]C = A.unsqueeze(1)    ## [2, 1, 3, 4]      D = A.unsqueeze(2)    ## [2, 3, 1, 4]E = A.unsqueeze(3)    ## [2, 3, 4, 1]

7 tensor.expand

A = A.expand()

在指定维度上扩展数据, 该指定维度长度为1,否则报错。(此时扩展仅是创建新的视图,并不进行数据复制)

A = torch.zeros(2, 3, 1) ## [2, 3, 1]B = A.expand(2, 3, 3)   ## [2, 3,  3]

转载于:https://www.cnblogs.com/yeran/p/11113926.html

你可能感兴趣的文章
在项目中加入其他样式
查看>>
OMAPL138学习----DSPLINK DEMO解析之SCALE
查看>>
restframework CBV试图的4种方式
查看>>
大图居中,以1920px为例
查看>>
[C陷阱和缺陷] 第7章 可移植性缺陷
查看>>
linux中configure文件默认执行结果所在位置
查看>>
Windows向Linux上传文件夹
查看>>
20180104-高级特性-Slice
查看>>
6个SQL Server 2005性能优化工具介绍
查看>>
nginx启动、关闭命令、重启nginx报错open() "/var/run/nginx/nginx.pid" failed
查看>>
BZOJ 3097 Hash Killer I
查看>>
UINavigationController的视图层理关系
查看>>
html阴影效果怎么做,css 内阴影怎么做
查看>>
宏观经济
查看>>
综合练习:词频统计
查看>>
BZOJ1026: [SCOI2009]windy数
查看>>
样板操作数
查看>>
64位UBUNTU下安装adobe reader后无法启动
查看>>
组件:slot插槽
查看>>
走进C++程序世界------异常处理
查看>>