【发布时间】:2020-12-04 15:32:38
【问题描述】:
下面的代码是取自https://blog.paperspace.com/how-to-implement-a-yolo-v3-object-detector-from-scratch-in-pytorch-part-3/ 的sn-p,我对它试图实现的目标感到困惑。
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],
...]])
【问题讨论】:
-
你不能一步步运行它并检查结果。如果我安装了
torch,我会这样做。我尝试猜测等效的numpy步骤,但放弃了。a和b很明显。 -
我认为操作在 numpy 和 torch 中都做同样的事情,所以使用 numpy 或 torch 并不重要。我确实是一步步运行的,但结果与我的预期不符。