mindspore.mint.nn.AdaptiveAvgPool3d
- class mindspore.mint.nn.AdaptiveAvgPool3d(output_size)[source]
Apply a 3-D adaptive average pooling to an input signal composed of multiple input planes. That is, for any input size, the size of the specified output is \((D, H, W)\). The number of output features is equal to the number of input planes.
Suppose the size of the last 3 dimensions of input is \((inD, inH, inW)\), then the size of the last 3 dimensions of output is \((outD, outH, outW)\).
\[\begin{split}\begin{array}{ll} \\ \forall \quad od \in [0,outD-1], oh \in [0,outH-1], ow \in [0,outW-1]\\ output[od,oh,ow] = \\ \qquad mean(input[istartD:iendD+1,istartH:iendH+1,istartW:iendW+1])\\ where,\\ \qquad istartD= \left\lceil \frac{od * inD}{outD} \right\rceil \\ \qquad iendD=\left\lfloor \frac{(od+1)* inD}{outD} \right\rfloor \\ \qquad istartH=\left\lceil \frac{oh * inH}{outH} \right\rceil \\ \qquad iendH=\left\lfloor \frac{(oh+1) * inH}{outH} \right\rfloor \\ \qquad istartW=\left\lceil \frac{ow * inW}{outW} \right\rceil \\ \qquad iendW=\left\lfloor \frac{(ow+1) * inW}{outW} \right\rfloor \end{array}\end{split}\]Warning
For Ascend, it is only supported on Atlas A2 Training Series Products.
- Parameters
output_size (Union[int, tuple]) – The target output size. output_size can be a tuple \((D, H, W)\), or an int D for \((D, D, D)\). \(D\), \(H\) and \(W\) can be either an integer, or
None, which means the output size is the same as that of the input.
- Inputs:
input (Tensor) - The input tensor with shape \((N, C, D, H, W)\) or \((C, D, H, W)\).
- Outputs:
Tensor.
- Supported Platforms:
Ascend
Examples
>>> import mindspore >>> # case 1: output_size=(3, 3, 4) >>> output_size=(3, 3, 4) >>> input_x = mindspore.mint.randn((4, 3, 5, 6, 7), mindspore.float32) >>> net = mindspore.mint.nn.AdaptiveAvgPool3d(output_size) >>> output = net(input_x) >>> print(output.shape) (4, 3, 3, 3, 4) >>> # case 2: output_size=5 >>> output_size=5 >>> input_x = mindspore.mint.randn((2, 3, 8, 6, 12), mindspore.float32) >>> net = mindspore.mint.nn.AdaptiveAvgPool3d(output_size) >>> output = net(input_x) >>> print(output.shape) (2, 3, 5, 5, 5) >>> # case 3: output_size=(None, 4, 5) >>> output_size=(None, 4, 5) >>> input_x = mindspore.mint.randn((4, 1, 9, 10, 8), mindspore.float32) >>> net = mindspore.mint.nn.AdaptiveAvgPool3d(output_size) >>> output = net(input_x) >>> print(output.shape) (4, 1, 9, 4, 5)