![]() |
Performs max pooling on the input and outputs both max values and indices.
Aliases:
tf.nn.max_pool_with_argmax(
input,
ksize,
strides,
padding,
data_format='NHWC',
Targmax=None,
name=None,
output_dtype=None,
include_batch_in_index=False
)
The indices in argmax
are flattened, so that a maximum value at position
[b, y, x, c]
becomes flattened index:
(y * width + x) * channels + c
if include_batch_in_index
is False;
((b * height + y) * width + x) * channels + c
if include_batch_in_index
is True.
The indices returned are always in [0, height) x [0, width)
before flattening,
even if padding is involved and the mathematically correct answer is outside
(either negative or too large). This is a bug, but fixing it is difficult to do
in a safe backwards compatible way, especially due to flattening.
Args:
input
: ATensor
. Must be one of the following types:float32
,float64
,int32
,uint8
,int16
,int8
,int64
,bfloat16
,uint16
,half
,uint32
,uint64
. 4-D with shape[batch, height, width, channels]
. Input to pool over.ksize
: A list ofints
that has length>= 4
. The size of the window for each dimension of the input tensor.strides
: A list ofints
that has length>= 4
. The stride of the sliding window for each dimension of the input tensor.padding
: Astring
from:"SAME", "VALID"
. The type of padding algorithm to use.Targmax
: An optionaltf.DType
from:tf.int32, tf.int64
. Defaults totf.int64
.include_batch_in_index
: An optionalbool
. Defaults toFalse
. Whether to include batch dimension in flattened index ofargmax
.name
: A name for the operation (optional).
Returns:
A tuple of Tensor
objects (output, argmax).
output
: ATensor
. Has the same type asinput
.argmax
: ATensor
of typeTargmax
.