mindspore/docs/api/api_python/ops/mindspore.ops.Col2Im.rst

35 lines
2.8 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

mindspore.ops.Col2Im
=====================
.. py:class:: mindspore.ops.Col2Im(kernel_size, dilation=1, padding=0, stride=1)
将一组通过滑窗获得的数组组合成一个大的Tensor。其中 `dilation``padding``stride` 决定了滑窗如何滑动与检索元素。
假设输入为一个包含多个滑窗的Tensor例如图像的补丁其shape为 :math:`(N, C, \prod(\text{kernel_size}), L)` 分别代表Batch数量、Channel数量、滑窗大小与滑窗总数。Col2Im通过对这些滑窗重叠的部分进行加和来将输入组合成shape为 :math:`(N, C, \text{output_size}[0], \text{output_size}[1], \dots)` 的Tensor作为输出。
输入与输出的shape之间的关系可以表示为
.. math::
L = \prod_d \left\lfloor\frac{\text{output_size}[d] + 2 \times \text{padding}[d] %
- \text{dilation}[d] \times (\text{kernel_size}[d] - 1) - 1}{\text{stride}[d]} + 1\right\rfloor
式中d代表高度与宽度上两个维度。
参数:
- **kernel_size** (Union[int, tuple[int], list[int]]) - 滑窗大小由两个正整数组成分别代表滑窗的高度与宽度。如果数据类型为int代表不同方向上的填充大小相等。取值必须由用户指定。
- **dilation** (Union[int, tuple[int], list[int]], 可选) - 滑窗之间的间距由两个正整数组成分别代表横向与纵向上滑窗移动时与上一个滑窗间的距离。如果数据类型为int代表不同方向上的填充大小相等。默认值1。
- **padding** (Union[int, tuple[int], list[int]], 可选) - 滑窗取数前在输入 `x` 周围隐式填充0若需的范围由两个正整数组成分别代表横向与纵向上的填充范围。如果数据类型为int代表不同方向上的填充大小相等。默认值0。
- **stride** (Union[int, tuple[int], list[int]], 可选) - 滑窗移动的步长由两个正整数组成分别代表滑窗在横向与纵向上的移动步长。如果数据类型为int代表不同方向上的步长相等。默认值1。
输入:
- **x** (Tensor) - 4D Tensor数据类型为float16或float32。
- **output_size** (Tensor) - 1D Tensor输出Tensor的后两维的shape包含2个元素且其数据类型为int32。
输出:
4D Tensor类型与输入 `x` 一致。
异常:
- **TypeError** - 输入 `kernel_size``dilation``padding``stride` 的数据类型不是int、tuple[int]或list[int]之一。
- **ValueError** - 输入 `kernel_size``dilation``padding``stride` 的值小于等于0或者其中元素的个数大于2。
- **ValueError** - x.shape[2] != kernel_size[0] * kernel_size[1]。
- **ValueError** - x.shape[3]与计算出的滑动块数量不匹配。