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])


目录
相关文章
|
2月前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
541 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
2月前
|
机器学习/深度学习 PyTorch 算法框架/工具
探索PyTorch:张量的类型转换,拼接操作,索引操作,形状操作
探索PyTorch:张量的类型转换,拼接操作,索引操作,形状操作
|
7月前
|
机器学习/深度学习 数据采集 PyTorch
pytorch中的数据索引
pytorch中的数据索引
66 0
|
7月前
|
PyTorch 算法框架/工具 C++
windows上编译安装pytorch的c++扩展
windows上编译安装pytorch的c++扩展
124 0
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch深度学习基础之Tensor的索引和切片讲解及实战(附源码 简单易懂)
PyTorch深度学习基础之Tensor的索引和切片讲解及实战(附源码 简单易懂)
228 0
|
存储 自然语言处理 并行计算
PyTorch 新库 TorchMultimodal 使用说明:将多模态通用模型 FLAVA 扩展到 100 亿参数
PyTorch 新库 TorchMultimodal 使用说明:将多模态通用模型 FLAVA 扩展到 100 亿参数
275 0
|
PyTorch 算法框架/工具
Pytorch疑难小实验:Torch.max() Torch.min()在不同维度上的解释
Pytorch疑难小实验:Torch.max() Torch.min()在不同维度上的解释
174 0
|
PyTorch 算法框架/工具
Pytorch疑难小实验:理解torch.cat()在不同维度下的连接方式
Pytorch疑难小实验:理解torch.cat()在不同维度下的连接方式
272 0
|
PyTorch 算法框架/工具 索引
pytorch中,假设已经有了一个张量a,现在还有一个张量B,张量B为一维的张量,如何利用B张量的元素作为索引去检索a张量的元素?
可以使用PyTorch的索引操作符[]和张量的gather()方法来利用张量B的元素作为索引来检索张量a的元素。
231 0
|
PyTorch 算法框架/工具 索引
pytorch使用 ... 进行高级索引切片
pytorch使用 ... 进行高级索引切片
150 0