网格网格在pytorch/numpy中的应用
下面的代码是从中提取的一个片段,我对它试图实现什么感到困惑网格网格在pytorch/numpy中的应用,numpy,pytorch,tensor,Numpy,Pytorch,Tensor,下面的代码是从中提取的一个片段,我对它试图实现什么感到困惑 grid = np.arange(grid_size) a,b = np.meshgrid(grid, grid) x_offset = torch.FloatTensor(a).view(-1,1) y_offset = torch.FloatTensor(b).view(-1,1) if CUDA: x_offset = x_offset.cuda() y_
grid = np.arange(grid_size)
a,b = np.meshgrid(grid, grid)
x_offset = torch.FloatTensor(a).view(-1,1)
y_offset = torch.FloatTensor(b).view(-1,1)
if CUDA:
x_offset = x_offset.cuda()
y_offset = y_offset.cuda()
x_y_offset = torch.cat((x_offset, y_offset), 1).repeat(1,num_anchors).view(-1,2).unsqueeze(0)
我尝试了grid_size=3时的情况,结果是:
tensor([[0., 1.],
[2., 0.],
[1., 2.],
[0., 1.],
[2., 0.],
[0., 0.],
[1., 1.],
[1., 2.],
[2., 2.],
[0., 1.],
[2., 0.],
[1., 2.],
[0., 1.],
[2., 0.],
[0., 0.],
[1., 1.],
[1., 2.],
[2., 2.],
[0., 1.],
[2., 0.],
[1., 2.],
[0., 1.],
[2., 0.],
[0., 0.],
[1., 1.],
[1., 2.],
[2., 2.]])
我不太明白这里的模式是什么。根据给定链接中的描述,我认为我真的应该期望如下内容:
tensor([[0,0],
[0,0],
[0,0],
[0,1],
[0,1],
[0,1],
[0,2],
[0,2],
...]])
如果您希望显示第二个输出,只需更改
x_y_offset = (
torch.cat((x_offset, y_offset), 1).repeat(1, num_anchors).view(-1, 2).unsqueeze(0)
)
到
它只是与meshgrid输出的顺序有关。如果您希望显示第二个输出,只需更改即可
x_y_offset = (
torch.cat((x_offset, y_offset), 1).repeat(1, num_anchors).view(-1, 2).unsqueeze(0)
)
到
它只是与meshgrid输出的顺序有关。您不能一步一步地运行它并检查结果吗。如果我安装了
火炬
,我会这么做。我试着猜出等效的numpy
步骤,但还是放弃了a
和b
非常明显。我认为numpy和torch中的操作都是一样的,所以使用numpy还是torch并不重要。我确实一步一步地运行它,但是结果不符合我的预期。你不能一步一步地运行它并检查结果吗。如果我安装了火炬
,我会这么做。我试着猜出等效的numpy
步骤,但还是放弃了a
和b
非常明显。我认为numpy和torch中的操作都是一样的,所以使用numpy还是torch并不重要。我确实一步一步地运行它,但结果与我的预期不符。