View source on GitHub |
Performs max pooling on the input and outputs both max values and indices.
tf.nn.max_pool_with_argmax(
input, ksize, strides, padding, data_format='NHWC',
output_dtype=tf.dtypes.int64, include_batch_in_index=False, name=None
)
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.
input
: A Tensor
. 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
: An int or list of ints
that has length 1
, 2
or 4
.
The size of the window for each dimension of the input tensor.strides
: An int or list of ints
that has length 1
, 2
or 4
.
The stride of the sliding window for each dimension of the
input tensor.padding
: A string
from: "SAME", "VALID"
.
The type of padding algorithm to use.data_format
: An optional string
, must be set to "NHWC"
. Defaults to
"NHWC"
.
Specify the data format of the input and output data.output_dtype
: An optional tf.DType
from: tf.int32, tf.int64
.
Defaults to tf.int64
.
The dtype of the returned argmax tensor.include_batch_in_index
: An optional boolean
. Defaults to False
.
Whether to include batch dimension in flattened index of argmax
.name
: A name for the operation (optional).A tuple of Tensor
objects (output, argmax).
output
: A Tensor
. Has the same type as input
.argmax
: A Tensor
of type output_dtype
.