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

44 lines
3.5 KiB
ReStructuredText
Raw Normal View History

2022-10-08 16:17:20 +08:00
mindspore.nn.AvgPool3d
=======================
2022-10-13 15:42:27 +08:00
.. py:class:: mindspore.nn.AvgPool3d(kernel_size, stride=None, padding=0, ceil_mode=False, count_include_pad=True, divisor_override=None)
2022-10-08 16:17:20 +08:00
对输入的多维数据进行三维的平均池化运算。
2022-10-27 15:12:01 +08:00
在一个输入Tensor上应用3D max pooling输入Tensor可看成是由一系列3D平面组成的。
2022-10-08 16:17:20 +08:00
2022-10-27 15:12:01 +08:00
通常输入的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})``stride`:math:`s = (s_0, s_1, s_2)`,公式如下。
2022-10-08 16:17:20 +08:00
.. warning::
2022-10-27 15:12:01 +08:00
`kernel_size` 在[1, 255]的范围内取值。`stride` 在[1, 63]的范围内取值。
2022-10-08 16:17:20 +08:00
.. 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)
参数:
2022-10-26 19:44:35 +08:00
- **kernel_size** (Union[int, tuple[int]]) - 指定池化核尺寸大小。如果为int则同时代表池化核的深度高度和宽度。如果为tuple其值必须包含三个int分别表示池化核的深度高度和宽度。取值必须为正整数。
- **stride** (Union[int, tuple[int]]) - 池化操作的移动步长。如果为int则同时代表池化核的深度高度和宽度方向上的移动步长。如果为tuple其值必须包含三个整数值分别表示池化核的深度高度和宽度方向上的移动步长。取值必须为正整数。如果值为None则使用默认值 `kernel_size`
2022-10-27 15:12:01 +08:00
- **padding** (Union(int, tuple[int])) - 需要填充的pad值。取值不能为负数。如果 `padding` 为整数则分别在头右都填充padding如果 `padding` 是一个六个整数的元组则分别在头右填充padding[0]padding[1]padding[2]padding[3]padding[4]padding[5]。默认值0。
2022-10-17 11:39:16 +08:00
- **ceil_mode** (bool) - 若为True使用ceil来计算输出shape。若为False使用floor来计算输出shape。默认值False。
2022-10-08 16:17:20 +08:00
- **count_include_pad** (bool) - 平均计算是否包括零填充。默认值True。
2022-10-13 15:42:27 +08:00
- **divisor_override** (int) - 如果被指定为非0参数该参数将会在平均计算中被用作除数否则将会使用 `kernel_size` 作为除数默认值None。
2022-10-08 16:17:20 +08:00
输入:
2022-10-18 11:25:57 +08:00
- **x** (Tensor) - shape为 :math:`(N, C, D_{in}, H_{in}, W_{in})` 或者 :math:`(C, D_{in}, H_{in}, W_{in})` 的Tensor。数据类型必须为float16或者float32。
2022-10-08 16:17:20 +08:00
输出:
2022-10-18 11:25:57 +08:00
shape为 :math:`(N, C, D_{out}, H_{out}, W_{out})` 或者 :math:`(C, D_{in}, H_{in}, W_{in})` 的Tensor。数据类型与 `x` 一致。
2022-10-08 16:17:20 +08:00
异常:
2022-10-13 15:42:27 +08:00
- **TypeError** - `kernel_size` `stride``padding` 既不是整数也不是元组。
2022-10-08 16:17:20 +08:00
- **TypeError** - `ceil_mode``count_include_pad` 不是布尔类型。
2022-10-13 15:42:27 +08:00
- **TypeError** - `data_format` 不是字符串。
2022-10-08 16:17:20 +08:00
- **TypeError** - `divisor_override` 不是整数。
2022-10-13 15:42:27 +08:00
- **ValueError** - `kernel_size` 或者 `stride` 中的数字不是正数。
- **ValueError** - `kernel_size``stride` 是一个长度不为3的tuple。
- **ValueError** - `padding` 是一个长度不为6的tuple。
- **ValueError** - `padding` 的元素小于0。
2022-10-08 16:17:20 +08:00
- **ValueError** - `x` 的shape长度不等于5。