| nn_avg_pool2d {torch} | R Documentation |
Applies a 2D average pooling over an input signal composed of several input planes.
Description
In the simplest case, the output value of the layer with input size (N, C, H, W),
output (N, C, H_{out}, W_{out}) and kernel_size (kH, kW)
can be precisely described as:
Usage
nn_avg_pool2d(
kernel_size,
stride = NULL,
padding = 0,
ceil_mode = FALSE,
count_include_pad = TRUE,
divisor_override = NULL
)
Arguments
kernel_size |
the size of the window |
stride |
the stride of the window. Default value is |
padding |
implicit zero padding to be added on both sides |
ceil_mode |
when TRUE, will use |
count_include_pad |
when TRUE, will include the zero-padding in the averaging calculation |
divisor_override |
if specified, it will be used as divisor, otherwise |
Details
out(N_i, C_j, h, w) = \frac{1}{kH * kW} \sum_{m=0}^{kH-1} \sum_{n=0}^{kW-1}
input(N_i, C_j, stride[0] \times h + m, stride[1] \times w + n)
If padding is non-zero, then the input is implicitly zero-padded on both sides
for padding number of points.
The parameters kernel_size, stride, padding can either be:
a single
int– in which case the same value is used for the height and width dimensiona
tupleof two ints – in which case, the firstintis used for the height dimension, and the secondintfor the width dimension
Shape
Input:
(N, C, H_{in}, W_{in})Output:
(N, C, H_{out}, W_{out}), where
H_{out} = \left\lfloor\frac{H_{in} + 2 \times \mbox{padding}[0] -
\mbox{kernel\_size}[0]}{\mbox{stride}[0]} + 1\right\rfloor
W_{out} = \left\lfloor\frac{W_{in} + 2 \times \mbox{padding}[1] -
\mbox{kernel\_size}[1]}{\mbox{stride}[1]} + 1\right\rfloor
Examples
if (torch_is_installed()) {
# pool of square window of size=3, stride=2
m <- nn_avg_pool2d(3, stride = 2)
# pool of non-square window
m <- nn_avg_pool2d(c(3, 2), stride = c(2, 1))
input <- torch_randn(20, 16, 50, 32)
output <- m(input)
}