Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对PyTorch张量的中间维使用省略号_Python_Pytorch - Fatal编程技术网

Python 对PyTorch张量的中间维使用省略号

Python 对PyTorch张量的中间维使用省略号,python,pytorch,Python,Pytorch,假设我有一个形状为(8,3,32,32)的torch.Tensor t。我只想沿着第一个和最后两个维度建立索引 在我的用例中,t是一批8个图像,我想修改其中的一个补丁。假设面片由索引[code>idx_last=torch.tensor([[0,0],[0,1],[1,0],[1,1]])给出。 我还有idx1=torch.arange(4):我想要前4幅图像的补丁 以下操作不起作用: t[idx1,…,idx\u last] 有什么办法可以做到这一点吗?我找到了一个解决办法,尽管它可能不是最有

假设我有一个形状为(8,3,32,32)的
torch.Tensor t
。我只想沿着第一个和最后两个维度建立索引

在我的用例中,
t
是一批8个图像,我想修改其中的一个补丁。假设面片由索引[code>idx_last=torch.tensor([[0,0],[0,1],[1,0],[1,1]])给出。 我还有
idx1=torch.arange(4)
:我想要前4幅图像的补丁

以下操作不起作用:

t[idx1,…,idx\u last]


有什么办法可以做到这一点吗?

我找到了一个解决办法,尽管它可能不是最有效的。 在
idx1
为一维(数据点选择)且
idx\u last
为多维的情况下,以下得到想要的结果:

t[(idx1, ...) + tuple(idx_last.T)]

更好的解决方案当然是受欢迎的。

我找到了一个解决方案,尽管它可能不是最有效的。 在
idx1
为一维(数据点选择)且
idx\u last
为多维的情况下,以下得到想要的结果:

t[(idx1, ...) + tuple(idx_last.T)]

我们绝对欢迎更好的解决方案。

它应该会起作用。你面临的问题是什么?我有一些问题。在上一个示例中,我通过执行以下操作使其工作:
idx=tuple((在idx_last.T中x代表x))
然后
T[(idx1,…)+idx]
出于某种原因
T[(idx1,…)+tuple(idx_last.T)]
的形状与
T[idx1,…,idx_last.T]
的形状不一样,应该可以工作。你面临的问题是什么?我有一些问题。在上一个示例中,我通过执行以下操作使其工作:
idx=tuple((idx_last.T中的x代表x))
然后
T[(idx1,…)+idx]
出于某种原因,
T[(idx1,…)+tuple(idx_last.T)]
T[idx1,…,idx_last.T]的形状不同。