mindspore.ops.AvgPool3D
- class mindspore.ops.AvgPool3D(kernel_size=1, strides=1, pad_mode='valid', pad=0, ceil_mode=False, count_include_pad=True, divisor_override=0, data_format='NCDHW')[source]
3D Average pooling operation.
Typically the input is of shape \((N, C, D_{in}, H_{in}, W_{in})\), AvgPool3D outputs regional average in the \((D_{in}, H_{in}, W_{in})\)-dimension. Given kernel size \(ks = (d_{ker}, h_{ker}, w_{ker})\) and stride \(s = (s_0, s_1, s_2)\), the operation is as follows.
Warning
“kernel_size” is in the range [1, 255]. “strides” is in the range [1, 63].
\[\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)\]- Parameters
kernel_size (Union[int, tuple[int]]) – The size of kernel used to take the average value, is an int number that represents depth, height and width are both kernel_size, or a tuple of three int numbers that represent depth, height and width respectively. Default:
1
.strides (Union[int, tuple[int]]) – The distance of kernel moving, an int number that represents the depth, height and width of movement are both strides, or a tuple of three int numbers that represent depth, height and width of movement respectively. Default:
1
.pad_mode (str, optional) –
Specifies the padding mode with a padding value of 0. It can be set to:
"same"
,"valid"
or"pad"
. Default:"valid"
."same"
: Pad the input around its depth/height/width dimension so that the shape of input and output are the same when stride is set to1
. The amount of padding to is calculated by the operator internally. If the amount is even, it isuniformly distributed around the input, if it is odd, the excess amount goes to the front/right/bottom side. If this mode is set, pad must be 0."valid"
: No padding is applied to the input, and the output returns the maximum possible depth, height and width. Extra pixels that could not complete a full stride will be discarded. If this mode is set, pad must be 0."pad"
: Pad the input with a specified amount. In this mode, the amount of padding in the depth, height and width dimension is determined by the pad parameter. If this mode is set, pad must be greater than or equal to 0.
pad (Union(int, tuple[int], list[int])) – The pad value to be filled. Default:
0
. If pad is an integer, the paddings of head, tail, top, bottom, left and right are the same, equal to pad. If pad is a tuple of six integers, the padding of head, tail, top, bottom, left and right equal to pad[0], pad[1], pad[2], pad[3], pad[4] and pad[5] correspondingly.ceil_mode (bool) – If
True
, ceil instead of floor to compute the output shape. Default:False
.count_include_pad (bool) – If
True
, averaging calculation will include the zero-padding. Default:True
.divisor_override (int) – If specified, it will be used as divisor in the averaging calculation, otherwise kernel_size will be used. Default:
0
.data_format (str) – The optional value for data format. Currently only support
'NCDHW'
. Default:'NCDHW'
.
- Inputs:
x (Tensor) - Tensor of shape \((N, C, D_{in}, H_{in}, W_{in})\). Currently support float16, float32 and float64 data type.
- Outputs:
Tensor, with shape \((N, C, D_{out}, H_{out}, W_{out})\). Has the same data type with x.
- Raises
TypeError – If kernel_size, strides or pad is neither an int not a tuple.
TypeError – If ceil_mode or count_include_pad is not a bool.
TypeError – If pad_mode or data_format is not a string.
TypeError – If divisor_override is not an int.
ValueError – If numbers in kernel_size or strides are not positive.
ValueError – If kernel_size or strides is a tuple whose length is not equal to 3.
ValueError – If pad_mode is not one of ‘same’, ‘valid’ or ‘pad’.
ValueError – If pad is a tuple whose length is not equal to 6.
ValueError – If element of pad is less than 0.
ValueError – If pad_mode is not equal to ‘pad’ and pad is not equal to 0 or (0, 0, 0, 0, 0, 0).
ValueError – If data_format is not ‘NCDHW’.
- Supported Platforms:
Ascend
GPU
CPU
Examples
>>> import mindspore >>> from mindspore import Tensor, ops >>> import numpy as np >>> x = Tensor(np.arange(1 * 2 * 2 * 2 * 3).reshape((1, 2, 2, 2, 3)), mindspore.float16) >>> avg_pool3d = ops.AvgPool3D(kernel_size=2, strides=1, pad_mode="valid") >>> output = avg_pool3d(x) >>> print(output) [[[[[ 5. 6.]]] [[[17. 18.]]]]]