F.grid_sample 用法解读

torch.nn.functional.grid_sample(input, grid, mode='bilinear', padding_mode='zeros', align_corners=None)

这个函数的作用就是给定输入input和网格grid,根据grid中的像素位置从input中取出对应位置的值(可能需要插值)得到输出output

目前input只支持二维(spatial)和三维(volumetric)数据,因为还包括batch_size和channel维度,即只支持4-D和5-D的输入。

对于4-D的输入,假设input的shape为\((N, C, H_{in}, W_{in})\),grid的shape为\((N, H_{out}, W_{out}, 2)\),则输出的shape为\((N, C, H_{out}, W_{out})\)。

对于每个输出位置output[n, :, h, w],大小为2的向量grid[n, h, w]指定了输入input的像素位置xy,然后进行插值得到输出值output[n, :, h, w]

mode指定插值方法nearestbilinear来对输入像素值进行采样。

grid指定了采样像素的位置,这里的位置是由input的空间维度归一化后的结果。所以范围在[-1, 1]区间内。比如x=-1, y=-1表示输入的最左上角的位置,x=1, y=1表示输入的最右下角位置。

你可能感兴趣的:(Pytorch,pytorch)