mindspore/docs/api/api_python/nn/mindspore.nn.AvgPool3d.rst

52 lines
4.3 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.nn.AvgPool3d
=======================
.. py:class:: mindspore.nn.AvgPool3d(kernel_size=1, strides=1, pad_mode="valid", pad=0, ceil_mode=False, count_include_pad=True, divisor_override=0)
对输入的多维数据进行三维的平均池化运算。
在一个输入Tensor上应用3D max pooling可被视为组成一个3D平面。
通常输入的shape为 :math:`(N_{in}, C_{in}, D_{in}, H_{in}, W_{in})` AvgPool3D输出 :math:`(D_{in}, H_{in}, W_{in})` 区域平均值。给定 `kernel_size`:math:`ks = (d_{ker}, h_{ker}, w_{ker})``strides`:math:`s = (s_0, s_1, s_2)`,公式如下。
.. warning::
"kernel_size" 在[1, 255]的范围内取值。"strides" 在[1, 63]的范围内取值。
.. math::
\text{output}(N_i, C_j, d, h, w) =
\frac{1}{d_{ker} * h_{ker} * w_{ker}} \sum_{l=0}^{d_{ker}-1} \sum_{m=0}^{h_{ker}-1} \sum_{n=0}^{w_{ker}-1}
\text{input}(N_i, C_j, s_0 \times d + l, s_1 \times h + m, s_2 \times w + n)
参数:
- **kernel_size** (Union[int, tuple[int]]) - 指定池化核尺寸大小。如果为int则同时代表池化核的深度高度和宽度。如果为tuple其值必须包含三个int分别表示池化核的深度高度和宽度。默认值1。
- **strides** (Union[int, tuple[int]]) - 池化操作的移动步长。如果为int则同时代表池化核的深度高度和宽度方向上的移动步长。如果为tuple其值必须包含三个整数值分别表示池化核的深度高度和宽度方向上的移动步长。默认值1。
- **pad_mode** (str) - 指定池化填充模式,取值为"same"、"valid"或"pad",不区分大小写。默认值:"valid"。
- **same** - 使用完成的方式进行填充。输出的深度,高度和宽度与输入相同。填充的总数将按深度、水平和垂直方向进行计算,并尽可能均匀的分布在头部和尾部、顶部和底部、左侧和右侧,此外,最后一个剩余的填充将填充在尾部、底部和右侧。如果设置了此模式,则"pad"必须为0。
- **valid** - 使用丢弃的方式完成填充。输出的最大深度、高度和宽度将不带填充返回。不满足计算的多余像素会被丢弃。如果设置了此模式,则`pad`必须为0。
- **pad** - 在深度,高度和宽度两侧进行隐式填充,`pad` 的值将会被填充到输入Tensor的边界`pad` 必须大于或等于0。
- **pad** (Union(int, tuple[int])) - 需要填充的pad值默认值0。如果 `pad` 为整数则分别在头右都填充pad如果`pad`是一个六个整数的元组则分别在头右填充pad[0]pad[1]pad[2]pad[3]pad[4]pad[5]。
- **ceil_mode** (Union[bool, None]) - 若为True使用ceil来计算输出shape。若为False使用floor来计算输出shape。默认值False。
- **count_include_pad** (bool) - 平均计算是否包括零填充。默认值True。
- **divisor_override** (int) - 如果被指定为非0参数该参数将会在平均计算中被用作除数否则将会使用 `kernel_size` 作为除数默认值0。
输入:
- **x** (Tensor) - shape为 :math:`(N, C, D_{in}, H_{in}, W_{in})` 的Tensor。数据类型必须为float16或者float32。
输出:
shape为 :math:`(N, C, D_{out}, H_{out}, W_{out})` 的Tensor。数据类型与 `x` 一致。
异常:
- **TypeError** - `kernel_size` , `strides``pad` 既不是整数也不是元组。
- **TypeError** - `ceil_mode``count_include_pad` 不是布尔类型。
- **TypeError** - `pad_mode` 不是字符串。
- **TypeError** - `divisor_override` 不是整数。
- **ValueError** - `kernel_size` 或者 `strides` 中的数字不是正数。
- **ValueError** - `kernel_size``strides` 是一个长度不为3的tuple。
- **ValueError** - `pad_mode` 既不是'same',也不是'valid'或者'pad'。
- **ValueError** - `pad` 是一个长度不为6的tuple。
- **ValueError** - `pad` 的元素小于0。
- **ValueError** - `pad_mode` 不等于 'pad' 并且 `pad` 不等于0或者(0, 0, 0, 0, 0, 0)。
- **ValueError** - `x` 的shape长度不等于5。