这里举个生成4*4的网格,在目标检测里常用到。
生成的坐标为4
import torch
torch.arange(4)
tensor([0, 1, 2, 3])
使用meshgrid生成y、x轴坐标
import torch
yv, xv = torch.meshgrid([torch.arange(4),torch.arange(4)])
print(yv,xv)
tensor([[0, 0, 0, 0],
[1, 1, 1, 1],
[2, 2, 2, 2],
[3, 3, 3, 3]])tensor([[0, 1, 2, 3],
[0, 1, 2, 3],
[0, 1, 2, 3],
[0, 1, 2, 3]])
再在2的维度上拼接。
torch.stack((xv, yv), 2)
tensor([[[0, 0],
[1, 0],
[2, 0],
[3, 0]],
[[0, 1],
[1, 1],
[2, 1],
[3, 1]],
[[0, 2],
[1, 2],
[2, 2],
[3, 2]],
[[0, 3],
[1, 3],
[2, 3],
[3, 3]]])
这样每个点的坐标就生成了。