mindspore.ops.col2im

mindspore.ops.col2im(input_x, output_size, kernel_size, dilation, padding_value, stride)[源代码]

将一组滑动局部块组合成一个大的Tensor。

参数:
  • input_x (Tensor) - 四维Tensor,输入的批量的滑动局部块,数据类型支持float16和float32。

  • output_size (Tensor) - 包含两个int元素的一维Tensor,输出张量的后两维的shape。

  • kernel_size (Union[int, tuple[int], list[int]]) - 滑动窗口的大小。tuple的两个元素分别对应kernel的高度与宽度。如果为一个int则kernel的高度与宽度均为该值。

  • dilation (Union[int, tuple[int], list[int]]) - 滑动窗口扩张的大小。

  • padding_value (Union[int, tuple[int], list[int]]) - 填充的大小。

  • stride (Union[int, tuple[int], list[int]]) - 步长的大小。

返回:

Tensor,输出的张量,维度和类型和输入一致。

异常:
  • TypeError - 如果 kernel_sizedilationpadding_valuestride 不属于 Union[int, tuple[int], list[int]]。

  • ValueError - 如果 kernel_sizedilationstride 值小于等于0或者个数大于2。

  • ValueError - 如果 padding_value 值小于0或者个数大于2。

  • ValueError - 如果 input_x.dims(2) 不等于 kernel_size[0] * kernel_size[1]

  • ValueError - 如果 input_x.dims(3) 与计算出的滑动块数量不匹配。

支持平台:

Ascend GPU CPU

样例:

>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> from mindspore import dtype as mstype
>>> x = Tensor(input_data=np.random.rand(16, 16, 4, 25), dtype=mstype.float32)
>>> output_size = Tensor(input_data=[8, 8], dtype=mstype.int32)
>>> output = ops.col2im(x, output_size, [2, 2], [2, 2], [2, 2], [2, 2])
>>> print(output.shape)
(16, 16, 8, 8)