MaxPool
struct
defined in module
Flux
MaxPool(window::NTuple; pad=0, stride=window)
Max pooling layer, which replaces all pixels in a block of size
window
with one.
Expects as input an array with
ndims(x) == N+2
, i.e. channel and batch dimensions, after the
N
feature dimensions, where
N = length(window)
.
By default the window size is also the stride in each dimension. The keyword
pad
accepts the same options as for the
Conv
layer, including
SamePad()
.
See also
Conv
,
MeanPool
,
AdaptiveMaxPool
,
GlobalMaxPool
.
julia> xs = rand(Float32, 100, 100, 3, 50); # batch of 50 RGB images
julia> m = Chain(Conv((5, 5), 3 => 7, pad=SamePad()), MaxPool((5, 5), pad=SamePad()))
Chain(
Conv((5, 5), 3 => 7, pad=2), # 532 parameters
MaxPool((5, 5), pad=2),
)
julia> m[1](xs) |> size
(100, 100, 7, 50)
julia> m(xs) |> size
(20, 20, 7, 50)
julia> layer = MaxPool((5,), pad=2, stride=(3,)) # one-dimensional window
MaxPool((5,), pad=2, stride=3)
julia> layer(rand(Float32, 100, 7, 50)) |> size
(34, 7, 50)
There are
2
methods for Flux.MaxPool
:
The following pages link back here: