工业增速创近27个月新高 全年或呈“前高后稳”走势

paddle.nn.functional. adaptive_avg_pool3d ( x: Tensor, output_size: Size3, data_format: DataLayout3D = 'NCDHW', name: str | None = None ) Tensor [source]
百度 若发现身份信息未通过,就要持有效身份证原件到火车站窗口办理身份核验通过后才能网上购票。

This operation applies 3D adaptive avg pooling on input tensor. The h and w dimensions of the output tensor are determined by the parameter output_size.

For avg adaptive pool3d:

\[\begin{split}dstart &= floor(i * D_{in} / D_{out}) \\ dend &= ceil((i + 1) * D_{in} / D_{out}) \\ hstart &= floor(j * H_{in} / H_{out}) \\ hend &= ceil((j + 1) * H_{in} / H_{out}) \\ wstart &= floor(k * W_{in} / W_{out}) \\ wend &= ceil((k + 1) * W_{in} / W_{out}) \\ Output(i ,j, k) &= \frac{\sum Input[dstart:dend, hstart:hend, wstart:wend]} {(dend - dstart) * (hend - hstart) * (wend - wstart)}\end{split}\]
Parameters
  • x (Tensor) – The input tensor of adaptive avg pool3d operator, which is a 5-D tensor. The data type can be float32, float64.

  • output_size (int|list|tuple) – The pool kernel size. If pool kernel size is a tuple or list, it must contain three elements, (D, H, W). D, H and W can be either a int, or None which means the size will be the same as that of the input.

  • data_format (str, optional) – The data format of the input and output data. An optional string from: “NCDHW”, “NDHWC”. The default is “NCDHW”. When it is “NCDHW”, the data is stored in the order of: [batch_size, input_channels, input_depth, input_height, input_width].

  • name (str|None, optional) – For detailed information, please refer to Name. Usually name is no need to set and None by default.

Returns

Tensor, The output tensor of avg adaptive pool3d result. The data type is same as input tensor.

Examples

>>> # adaptive avg pool3d
>>> # suppose input data in shape of [N, C, D, H, W], `output_size` is [l, m, n],
>>> # output shape is [N, C, l, m, n], adaptive pool divide D, H and W dimensions
>>> # of input data into l * m * n grids averagely and performs poolings in each
>>> # grid to get output.
>>> # adaptive avg pool performs calculations as follow:
>>> #
>>> #     for i in range(l):
>>> #         for j in range(m):
>>> #             for k in range(n):
>>> #                 dstart = floor(i * D / l)
>>> #                 dend = ceil((i + 1) * D / l)
>>> #                 hstart = floor(j * H / m)
>>> #                 hend = ceil((j + 1) * H / m)
>>> #                 wstart = floor(k * W / n)
>>> #                 wend = ceil((k + 1) * W / n)
>>> #                 output[:, :, i, j, k] =
>>> #                     avg(input[:, :, dstart:dend, hstart: hend, wstart: wend])
>>> import paddle

>>> input_data = paddle.randn(shape=(2, 3, 8, 32, 32))
>>> out = paddle.nn.functional.adaptive_avg_pool3d(x = input_data,
...                                                output_size=[3, 3, 3])
>>> print(out.shape)
[2, 3, 3, 3, 3]