网格采样¶
GridSample - 22¶
版本¶
域名:
mainsince_version:
22函数:
Falsesupport_level:
SupportType.COMMON形状推断:
True
此版本的运算符自版本22起可用。
摘要¶
给定一个输入 X 和一个流场 grid,使用 X 的值和来自 grid 的像素位置计算输出 Y。
对于形状为 (N, C, H, W) 的空间输入 X,grid 将具有形状 (N, H_out, W_out, 2),
输出 Y 将具有形状 (N, C, H_out, W_out)。对于形状为 (N, C, D, H, W) 的体积输入 X,
grid 将具有形状 (N, D_out, H_out, W_out, 3),输出 Y 将具有形状 (N, C, D_out, H_out, W_out)。
更一般地,对于形状为 (N, C, d1, d2, …, dr) 的秩为 r+2 的输入 X,
grid 将具有形状 (N, D1_out, D2_out, …, Dr_out, r),输出 Y 将具有形状 (N, C, D1_out, D2_out, …, Dr_out)。
张量 X 包含位于方形像素(体素等)中心位置的值,例如 (n, c, d1_in, d2_in, …, dr_in)。
来自张量 grid 的 (n, d1_out, d2_out, …, dr_out, :) 值是用于从输出张量 Y 中插值 (n, c, d1_out, d2_out, …, dr_out) 位置值的归一化位置,使用指定的插值方法(模式)
和填充模式(对于落在二维图像之外的 grid 位置)。
例如,grid[n, h_out, w_out, :]中的值是大小为2的向量,指定了在X的二维空间中的归一化位置。
它们用于插值Y[n, c, h_out, w_out]的输出值。
GridSample 算子常用于在空间变换网络中进行网格生成和采样。另请参见torch.nn.functional.grid_sample。
属性¶
align_corners - INT (默认为
'0'):如果 align_corners=1,极值(-1 和 1)被视为指向输入角像素(体素等)的中心点。如果 align_corners=0,它们则被视为指向输入角像素(体素等)的角点,使得采样更加与分辨率无关。
mode - STRING (默认为
'linear'):三种插值模式:线性(默认)、最近邻和三次。 “线性”模式包括线性和N线性插值模式,具体取决于输入张量的空间维度数(即1个空间维度为线性,2个空间维度为双线性,依此类推)。 “三次”模式也遵循相同的规则包括N三次插值模式。 “最近邻”模式在采样点落在两个索引之间时四舍五入到最近的偶数索引。
padding_mode - 字符串 (默认为
'zeros'):支持用于外部网格值的填充模式:
zeros(默认)、border、reflection。zeros:对超出边界的网格位置使用0,border:对超出边界的网格位置使用边界值,reflection:对超出边界的网格位置使用由边界反射的位置的值。如果索引0表示边缘像素,则索引-1处的反射值将与索引1处的值相同。对于远离边界的位置,它将不断反射直到进入边界。如果像素位置x = -3.5通过边界-1反射并变为x’ = 1.5,然后通过边界1反射并变为x’’ = 0.5。
输入¶
X (异构) - T1:
输入张量的秩为r+2,形状为(N, C, D1, D2, …, Dr),其中N是批量大小,C是通道数,D1, D2, …, Dr是空间维度。
grid(异构) - T2:
输入形状的偏移量 (N, D1_out, D2_out, …, Dr_out, r),其中 D1_out, D2_out, …, Dr_out 是网格和输出的空间维度,r 是空间维度的数量。网格指定了由输入空间维度归一化的采样位置。因此,它的大多数值应该在 [-1, 1] 的范围内。如果网格的值超出了 [-1, 1] 的范围,相应的输出将按照 padding_mode 的定义进行处理。遵循计算机视觉的惯例,长度-r 的位置向量中的坐标从最内层的张量维度到最外层的张量维度列出,与常规的张量索引顺序相反。
输出¶
Y (异构) - T1:
输出张量的秩为r+2,形状为(N, C, D1_out, D2_out, …, Dr_out)的采样值。对于整数输入类型,中间值以浮点数计算,并在最后转换为整数。
类型约束¶
T1 在 (
tensor(bfloat16),tensor(bool),tensor(complex128),tensor(complex64),tensor(double),tensor(float),tensor(float16),tensor(int16),tensor(int32),tensor(int64),tensor(int8),tensor(string),tensor(uint16),tensor(uint32),tensor(uint64),tensor(uint8)):将输入
X和输出Y的类型限制为所有张量类型。T2 在 (
tensor(bfloat16),tensor(double),tensor(float),tensor(float16)) 中:将网格类型限制为浮点张量。
GridSample - 20¶
版本¶
域名:
mainsince_version:
20函数:
Falsesupport_level:
SupportType.COMMON形状推断:
True
此版本的运算符自版本20起可用。
摘要¶
给定一个输入 X 和一个流场 grid,使用 X 的值和 grid 中的像素位置计算输出 Y。
对于形状为 (N, C, H, W) 的空间输入 X,grid 将具有形状 (N, H_out, W_out, 2),
输出 Y 将具有形状 (N, C, H_out, W_out)。对于形状为 (N, C, D, H, W) 的体积输入 X,
grid 将具有形状 (N, D_out, H_out, W_out, 3),输出 Y 将具有形状 (N, C, D_out, H_out, W_out)。
更一般地,对于形状为 (N, C, d1, d2, …, dr) 的秩为 r+2 的输入 X,
grid 将具有形状 (N, D1_out, D2_out, …, Dr_out, r),输出 Y 将具有形状 (N, C, D1_out, D2_out, …, Dr_out)。
张量 X 包含位于方形像素(体素等)中心位置的值,例如 (n, c, d1_in, d2_in, …, dr_in)。
从张量 grid 中获取的 (n, d1_out, d2_out, …, dr_out, :) 值是用于插值输出张量 Y 中 (n, c, d1_out, d2_out, …, dr_out) 位置值的归一化位置,使用指定的插值方法(模式)
和填充模式(对于落在二维图像之外的 grid 位置)。
例如,grid[n, h_out, w_out, :]中的值是大小为2的向量,指定了在X的二维空间中的归一化位置。
它们用于插值Y[n, c, h_out, w_out]的输出值。
GridSample 算子常用于在空间变换网络中进行网格生成和采样。另请参见torch.nn.functional.grid_sample。
属性¶
align_corners - INT (默认为
'0'):如果 align_corners=1,极值(-1 和 1)被视为指向输入角像素(体素等)的中心点。如果 align_corners=0,它们则被视为指向输入角像素(体素等)的角点,使得采样更加与分辨率无关。
mode - STRING (默认为
'linear'):三种插值模式:线性(默认)、最近邻和三次。 “线性”模式包括线性和N线性插值模式,具体取决于输入张量的空间维度数(即1个空间维度为线性,2个空间维度为双线性,依此类推)。 “三次”模式也遵循相同的规则包括N三次插值模式。 “最近邻”模式在采样点落在两个索引之间时四舍五入到最近的偶数索引。
padding_mode - 字符串 (默认为
'zeros'):支持用于外部网格值的填充模式:
zeros(默认)、border、reflection。zeros:对于超出边界的网格位置使用0,border:对于超出边界的网格位置使用边界值,reflection:对于超出边界的网格位置使用由边界反射的位置的值。如果索引0表示边缘像素,则索引-1处的反射值将与索引1处的值相同。对于远离边界的位置,它将不断反射直到进入边界。如果像素位置x = -3.5通过边界-1反射并变为x’ = 1.5,然后通过边界1反射并变为x’’ = 0.5。
输入¶
X (异构) - T1:
输入张量的秩为r+2,形状为(N, C, D1, D2, …, Dr),其中N是批量大小,C是通道数,D1, D2, …, Dr是空间维度。
grid(异构) - T2:
输入形状的偏移量 (N, D1_out, D2_out, …, Dr_out, r),其中 D1_out, D2_out, …, Dr_out 是网格和输出的空间维度,r 是空间维度的数量。网格指定了由输入空间维度归一化的采样位置。因此,它的大多数值应该在 [-1, 1] 的范围内。如果网格的值超出了 [-1, 1] 的范围,相应的输出将按照 padding_mode 的定义进行处理。遵循计算机视觉的惯例,长度-r 位置向量中的坐标从最内层的张量维度到最外层列出,与常规的张量索引相反。
输出¶
Y (异构) - T1:
输出张量的秩为r+2,形状为(N, C, D1_out, D2_out, …, Dr_out)的采样值。对于整数输入类型,中间值以浮点数计算,并在最后转换为整数。
类型约束¶
T1 在 (
tensor(bool),tensor(complex128),tensor(complex64),tensor(double),tensor(float),tensor(float16),tensor(int16),tensor(int32),tensor(int64),tensor(int8),tensor(string),tensor(uint16),tensor(uint32),tensor(uint64),tensor(uint8)):将输入
X和输出Y的类型限制为所有张量类型。T2 在 (
tensor(double),tensor(float),tensor(float16)) 中:将网格类型限制为浮点张量。
GridSample - 16¶
版本¶
域名:
mainsince_version:
16函数:
Falsesupport_level:
SupportType.COMMON形状推断:
True
此版本的运算符自版本16起可用。
总结¶
给定一个输入 X 和一个流场 grid,使用 X 的值和 grid 中的像素位置计算输出 Y。
目前,仅支持空间(4-D)输入。对于形状为 (N, C, H, W) 的输入 X 和形状为 (N, H_out, W_out, 2) 的 grid,
输出 Y 的形状将为 (N, C, H_out, W_out)。
张量 X 包含在 H 乘 W 二维图像中正方形像素中心的值。
张量 grid 描述了输出 Y 将被计算的位置,使用指定的插值方法(模式)和填充模式(对于落在二维图像之外的网格位置)。
grid[N, H_out, W_out] 中的元素是大小为2的向量,用于指定在 X 的二维空间中的位置。
它们用于插值 Y[N, C, H_out, W_out] 的输出值。
GridSample 算子常用于在空间变换网络中进行网格生成和采样。 另见torch.nn.functional.grid_sample。
属性¶
align_corners - INT (默认为
'0'):如果 align_corners=1,极值(-1 和 1)被视为指向输入角像素的中心点。如果 align_corners=0,它们被视为指向输入角像素的角点,使得采样更加与分辨率无关。
mode - STRING (默认是
'bilinear'):三种插值模式:双线性(默认)、最近邻和双三次。
padding_mode - 字符串 (默认为
'zeros'):支持用于外部网格值的填充模式:
zeros(默认)、border、reflection。zeros:对于超出边界的网格位置使用0,border:对于超出边界的网格位置使用边界值,reflection:对于超出边界的网格位置使用由边界反射的位置的值。如果索引0表示边缘像素,则索引-1处的反射值将与索引1处的值相同。对于远离边界的位置,它将不断反射直到进入边界。如果像素位置x = -3.5通过边界-1反射并变为x’ = 1.5,然后通过边界1反射并变为x’’ = 0.5。
输入¶
X (异构) - T1:
形状为 (N, C, H, W) 的4维张量,其中 N 是批量大小,C 是通道数,H 和 W 是输入数据的高度和宽度。
grid(异构) - T2:
输入偏移量,形状为 (N, H_out, W_out, 2) 的 4-D 张量,其中 H_out 和 W_out 是网格和输出的高度和宽度,网格指定了由输入空间维度归一化的采样像素位置。因此,它的大多数值应该在 [-1, 1] 的范围内。如果网格的值超出了 [-1, 1] 的范围,相应的输出将按照 padding_mode 的定义进行处理。
输出¶
Y (异构) - T1:
形状为 (N, C, H_out, W_out) 的4维张量,包含采样值。对于整数输入类型,中间值以浮点数计算,并在最后转换为整数。
类型约束¶
T1 在 (
tensor(bool),tensor(complex128),tensor(complex64),tensor(double),tensor(float),tensor(float16),tensor(int16),tensor(int32),tensor(int64),tensor(int8),tensor(string),tensor(uint16),tensor(uint32),tensor(uint64),tensor(uint8)):将输入
X和输出Y的类型限制为所有张量类型。T2 在 (
tensor(double),tensor(float),tensor(float16)) 中:将网格类型限制为浮点张量。