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,但它只支持 批量 多维图像张量。另一个支持 N 维的 Python 实现可以在 https://github.com/f-dangel/unfoldNd/ 找到。
注意:尽管指定 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
输入数据张量,从列块重新排列回图像。这是一个 3 维张量,包含 [N, C * n-ary-product(block_shape), L],其中 N 是批处理维度,C 是图像通道维度,L 是块的数量。块以其索引的词典顺序递增枚举。例如,对于图像大小 10*20 和块大小 9*18,将有 2*3 个块,按 block(0, 0)、block(0, 1)、block(0, 2)、block(1, 0)、block(1, 1)、block(1, 2) 的顺序枚举。
image_shape (异构) - tensor(int64)
重新排列列块后图像空间维度的形状。这是一个至少为 2 的一维张量,对于 2D 图像包含值 [H_img, W_img],对于 ND 图像包含值 [dim_i1, dim_i2, …, dim_iN]。
block_shape (异构) - tensor(int64)
应用于输入的块的形状。这是一个至少为 2 的一维张量,对于 2D 图像包含值 [H_block, W_block],对于 ND 块包含值 [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))将输入和输出类型限制为所有数字张量类型。