Col2Im¶
Col2Im - 18¶
版本¶
名称: Col2Im (GitHub)
域:
main起始版本:
18函数:
False支持级别:
SupportType.COMMON形状推断:
True
此版本的操作符自版本 18 起可用。
摘要¶
该运算符将列块重新排列回多维图像
Col2Im 的行为类似于 PyTorch 的 fold https://pytorch.ac.cn/docs/stable/generated/torch.nn.Fold.html,但它只支持批处理的多维图像张量。在 https://github.com/f-dangel/unfoldNd/ 可以找到另一个支持 N 维的 Python 实现。
注意:尽管指定 image_shape 看起来是多余的,因为它可以通过卷积公式计算出来,但正如 PyTorch 的实现中所解释的 (https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/native/Col2Im.cpp#L10),在更高级的场景中,它仍然是必需的输入。
属性¶
dilations - 整数 :
一个一维张量,包含图像每个空间轴上的扩张值。如果不存在,则扩张值默认为图像每个空间轴上的 1。
pads - 整数 :
一个一维张量,包含每个空间轴起始和结束处的填充值,它可以取任何大于或等于 0 的值。该值表示添加到相应轴的起始和结束部分的像素数量。
pads格式应如下所示 [x1_begin, x2_begin…x1_end, x2_end,…], 其中 xi_begin 是添加到轴i起始处的像素数量,xi_end 是添加到轴i结束处的像素数量。如果不存在,则填充默认为每个空间轴起始和结束处的 0。strides - 整数 :
一个一维张量,包含沿每个空间轴的步幅值。如果不存在,则步幅默认为沿每个空间轴的 1。
输入¶
输入 (异构) - T
输入数据张量,将从列块重新排列回图像。这是一个三维张量,包含 [N, C * n-ary-product(block_shape), L],其中 N 是批处理维度,C 是图像通道维度,L 是块的数量。这些块按其索引的字典序递增顺序枚举。例如,对于图像大小 10*20 和块大小 9*18,将有 2*3 个块,按块(0, 0)、块(0, 1)、块(0, 2)、块(1, 0)、块(1, 1)、块(1, 2) 的顺序枚举。
image_shape (异构) - tensor(int64)
重新排列列块后图像空间维度的形状。这是一个至少为 2 的一维张量,包含 2-D 图像的 [H_img, W_img] 值或 N-D 图像的 [dim_i1, dim_i2, …, dim_iN] 值。
block_shape (异构) - tensor(int64)
应用于输入的块的形状。这是一个至少为 2 的一维张量,包含 2-D 图像的 [H_block, W_block] 值或 N-D 块的 [dim_b1, dim_b2, …, dim_bN] 值。这是应用扩张之前的块形状。
输出¶
输出 (异构) - T
通过将块重新排列成图像而产生的输出张量。
类型约束¶
T 在 (
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))将输入和输出类型限制为所有数字张量类型。