假设有如下的网格:
由上图可知,x轴的范围是从0-1,y轴的范围是从0-3
使用以下代码生成x,y的范围:
x_range = torch.arange(0,2) y_range = torch.arange(0,4)
而torch.meshgrid可以让我们在以某个维度顺序依次获得各个点的x坐标值,和y坐标轴。
当x轴坐标范围放在第二个参数中,就一行一行的去获得各个点的x坐标值,和y坐标轴
y,x = torch.meshgrid(y_range,x_range) print(x) print(y)
输出则是,结合图可知,上述操作获得了按照x轴依次获得各个点的横纵坐标
举例来说,访问的第一个点为(0,0),则x中的第一行的第一个值为0;接着访问的下一个点为(1,0),则x中的第一行的第二个值为1,同理y中的第一行全为0
tensor([[0, 1],
[0, 1],
[0, 1],
[0, 1]])
tensor([[0, 0],
[1, 1],
[2, 2],
[3, 3]])
当y轴坐标范围放在第二个参数中,就一列一列的去获得各个点的x坐标值,和y坐标轴
举例来说,访问的第一个点为(0,0),则x中的第一行的第一个值为0;接着访问的下一个点为(0,1),则x中的第一行的第二个值为0,再接下来访问(0,2),直至(0,3),而这个过程中,所有的横坐标都为0。
x,y = torch.meshgrid(x_range,y_range) print(x) print(y)
结果如图所示
tensor([[0, 0, 0, 0],
[1, 1, 1, 1]])
tensor([[0, 1, 2, 3],
[0, 1, 2, 3]])



