mindspore.nn.LPPool2d
======================

.. py:class:: mindspore.nn.LPPool2d(norm_type, kernel_size, stride=None, ceil_mode=False)

    在一个输入Tensor上应用2D LP池化运算,可被视为组成一个2D输入平面。

    通常,输入的shape为 :math:`(N, C, H_{in}, W_{in})`,输出的shape为 :math:`(N, C, H_{in}, W_{in})`,输出与输入的shape一致,公式如下:

    .. math::
        f(X) = \sqrt[p]{\sum_{x \in X} x^{p}}

    .. note::
        该接口暂不支持Atlas A2 训练系列产品。

    参数:
        - **norm_type** (Union[int, float]) - 标准化类型,代表公式里的 :math:`p`,不能为0,

          - 如果 p = 1,得到的结果为池化核内元素之和(与平均池化成比例);
          - 如果 p = :math:`\infty`,得到的结果为最大池化的结果。

        - **kernel_size** (Union[int, tuple[int]]) - 池化核尺寸大小。如果为整数,则代表池化核的高和宽。如果为tuple,其值必须包含两个整数值分别表示池化核的高和宽。
        - **stride** (Union[int, tuple[int]]) - 池化操作的移动步长,如果为整数,则代表stride的高和宽。如果为tuple,其值必须包含两个整数值分别表示stride的高和宽。如果值为 ``None`` ,则使用默认值 `kernel_size`。 默认值: ``None`` 。
        - **ceil_mode** (bool) - 若为 ``True`` ,使用ceil模式来计算输出shape。若为 ``False`` ,使用floor模式来计算输出shape。默认值: ``False`` 。

    输入:
        - **x** (Tensor) - shape为 :math:`(N, C, H_{in}, W_{in})` 的Tensor。

    输出:
        - **output** - LPPool2d的计算结果,shape为 :math:`(N, C, H_{in}, W_{in})` 的Tensor,与 输入 `x` 的类型一致,其中

        .. math::
            H_{out} = \left\lfloor\frac{H_{in} - \text{kernel_size}[0]}{\text{stride}[0]} + 1\right\rfloor

        .. math::
            W_{out} = \left\lfloor\frac{W_{in} - \text{kernel_size}[1]}{\text{stride}[1]} + 1\right\rfloor

    异常:
        - **TypeError** - `x` 不是Tensor。
        - **TypeError** - `kernel_size` 或 `stride` 不是int也不是tuple。
        - **TypeError** - `ceil_mode` 不是bool。
        - **TypeError** - `norm_type` 不是float也不是int。
        - **ValueError** - `norm_type` 等于0。
        - **ValueError** - `kernel_size` 或 `stride` 小于1。
        - **ValueError** - `kernel_size` 或 `stride` 是一个长度不为2的tuple。
        - **ValueError** - `x` 的shape长度不等于4。