我有个Numpy张量器 X = np.arange(64).reshape((4,4,4)) 我想要获取这个张量的第一维的2,3,4项,你可以这样做, Y = X[[1,2,3],:,:] 这是不是比显式地写出索引1,2,3更简单的方式呢?我尝试了像1,:这样的东西,它给我一个错误。 上下文:对于我的实际应用程序,张量的形状类似于(30000,100,100)。我想抓住这个张量的最后一个(10000,100,100)到(30000,100,100)。
所以我有一个张量,model,其中M是模型的数目,B是批,C是类,每个单元是给定模型和批处理的类的概率。然后,我得到了一个正确答案的张量,也就是B大小的1D,我们称之为"t“。如何使用大小为1D的B来返回MxBx1,其中返回的张量只是正确类的值?假设M张量被称为"blah“,我试过了
blah[:, :, C]
for i in range(M):
blah[i, :, C]
blah[:, C, :]
前2只返回每个切片第3维中的索引t值。最后一个返回二维t索引处的值。我该怎么做?
我有一个三维张量,source of (bsz x slen1 x nhd)和2d张量,index of shape (bsz x slen2)。更具体地说,我有:
source = 32 x 20 x 768
index = 32 x 16
index张量中的每个值都在[0, 19]之间,根据source张量的第2 dim值,source张量是期望向量的索引。
在索引之后,我期待一个形状的输出张量,32 x 16 x 768。
目前,我正在这样做:
bsz, _, nhid = source.size()
_, slen = index.size()
source = source.re
我有一个张量,包含五个2x2矩阵-形状(1,5,2,2),张量包含5个元素-形状(5)。我想把每个2x2矩阵(前一个张量)乘以相应的值(在后一个张量中)。结果张量应为形状(1,5,2,2)。怎么做?
在运行此代码时获取以下错误
a = torch.rand(1,5,2,2)
print(a.shape)
b = torch.rand(5)
print(b.shape)
mul = a*b
RuntimeError: The size of tensor a (2) must match the size of tensor b (5) at non-singleton dimension 3
我有一个带浮点项的张量a和torch.Size([64,2]),还有一个带有torch.Size([64])的张量b。b的条目仅为0或1。
我想用torch.Size([64])得到一个新的张量torch.Size([64]),使每一个指数i都有c[i] == a[i,b[i]],我怎么能做到呢?
我的尝试,,我尝试了torch.gather,但没有成功。下面的代码给出了RuntimeError: Index tensor must have the same number of dimensions as input tensor
import torch
a = torch.zeros([