pytorch,通过插入None对tensor进行维度扩充

背景

pytorch已经有了unsqueeze操作来增加tensor的维度,除了这个可以使用一个更显示,更直观,更简单的方法 -> 插入None来伪装一个axis

具体方法

import torch

x = torch.randn(8)
print(x.shape) # torch.Size([8])

1 在所有维度之前插入一个维度

x = torch.randn(8)
x = x[None, :] 
print(x.shape) # torch.Size([1, 8])

2 一次性插入多个维度

x = torch.randn(8)
x = x[None, None, :] 
print(x.shape) # torch.Size([1, 1, 8])

3 省去冒号,隐式的把当前所有维度置于最后面

x = torch.randn(8)
x = x[None] 
print(x.shape) # torch.Size([1, 8])
x = torch.randn(8)
x = x[None, None] 
print(x.shape) # torch.Size([1, 1, 8])

3 利用冒号,灵活的操纵维度

import torch
a = torch.randn(4,3)
print(a.shape) # torch.Size([4, 3])
b = a[None, :, :] # == a[None]
print(b.shape) # torch.Size([1, 4, 3])
c = a[:, None, :] # == a[:, None]
print(c.shape) # torch.Size([4, 1, 3])
d = a[:, :, None]
print(d.shape) # torch.Size([4, 3, 1])

这里面需要注意一下a[:, None, :] 等价于 a[:, None],因为后者省去了最后一个冒号/维度

Reference

https://sparrow.dev/adding-a-dimension-to-a-tensor-in-pytorch/

.
.
.
.
.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值