pytorch使用None索引进行维度扩展

简介: pytorch使用None索引进行维度扩展

pytorch中有两种方式可以进行维度扩展,第一种是torch.unsqueeze(),第二种是使用None索引进行扩展。

例1:在首部添加一个新的维度

这里定义了一个张量维度为【3,5,7】,我们想要在首部增加一个维度,变成【1,3,5,7】,这里我们可以使用None进行扩增维度。

a = torch.randn(3, 5, 7)
print(a[None, ...].shape)
torch.Size([1, 3, 5, 7])

None可以理解为占位,该位置代表一个新的维度为1,... 符号代表切片所有维度。

这里还有另外一种写法:

print(a.unsqueeze(dim=0).shape)

例2:跳步扩展维度

现有一个张量为【3,5,7】,我们想把这个张量变成维度为【1,3,1,5,1,7】,如果使用unsqueeze()会比较麻烦,需要调用三次函数,而且每次调用后还需要计算新的新的添加维度位置。

但如果使用None索引机制就会方便许多。

a = a.unsqueeze(1)
a = a.unsqueeze(3)
a = a.unsqueeze(5)
print(a[None, :, None, :, None, :].shape)
torch.Size([1, 3, 1, 5, 1, 7])


目录
相关文章
|
1月前
|
PyTorch 算法框架/工具 C++
windows上编译安装pytorch的c++扩展
windows上编译安装pytorch的c++扩展
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch深度学习基础之Tensor的索引和切片讲解及实战(附源码 简单易懂)
PyTorch深度学习基础之Tensor的索引和切片讲解及实战(附源码 简单易懂)
104 0
|
存储 自然语言处理 并行计算
PyTorch 新库 TorchMultimodal 使用说明:将多模态通用模型 FLAVA 扩展到 100 亿参数
PyTorch 新库 TorchMultimodal 使用说明:将多模态通用模型 FLAVA 扩展到 100 亿参数
182 0
|
PyTorch 算法框架/工具
Pytorch疑难小实验:Torch.max() Torch.min()在不同维度上的解释
Pytorch疑难小实验:Torch.max() Torch.min()在不同维度上的解释
128 0
|
PyTorch 算法框架/工具
Pytorch疑难小实验:理解torch.cat()在不同维度下的连接方式
Pytorch疑难小实验:理解torch.cat()在不同维度下的连接方式
205 0
|
机器学习/深度学习 数据采集 算法
基于Pytorch之深度学习模型数据类型和维度转换个人总结
基于Pytorch之深度学习模型数据类型和维度转换个人总结
281 0
基于Pytorch之深度学习模型数据类型和维度转换个人总结
|
PyTorch 算法框架/工具 索引
pytorch使用 ... 进行高级索引切片
pytorch使用 ... 进行高级索引切片
85 0
|
PyTorch 算法框架/工具 索引
pytorch交换tensor的指定维度
pytorch交换tensor的指定维度
341 0
|
PyTorch 算法框架/工具 索引
pytorch使用布尔索引获取指定维度元素
pytorch使用布尔索引获取指定维度元素
229 0
|
机器学习/深度学习 存储 数据挖掘
PyTorch: 张量的拼接、切分、索引
PyTorch: 张量的拼接、切分、索引
188 0
PyTorch: 张量的拼接、切分、索引