Class FractionalMaxPool<T extends TNumber>
java.lang.Object
org.tensorflow.op.RawOp
org.tensorflow.op.nn.FractionalMaxPool<T>
- All Implemented Interfaces:
Op
Performs fractional max pooling on the input.
Fractional max pooling is slightly different than regular max pooling. In
regular max pooling, you downsize an input set by taking the maximum value of
smaller N x N subsections of the set (often 2x2), and try to reduce the set by
a factor of N, where N is an integer. Fractional max pooling, as you might
expect from the word "fractional", means that the overall reduction ratio N
does not have to be an integer.
The sizes of the pooling regions are generated randomly but are fairly uniform. For example, let's look at the height dimension, and the constraints on the list of rows that will be pool boundaries.
First we define the following:
- input_row_length : the number of rows from the input set
- output_row_length : which will be smaller than the input
- alpha = input_row_length / output_row_length : our reduction ratio
- K = floor(alpha)
- row_pooling_sequence : this is the result list of pool boundary rows
Then, row_pooling_sequence should satisfy:
- a[0] = 0 : the first value of the sequence is 0
- a[end] = input_row_length : the last value of the sequence is the size
- K <= (a[i+1] - a[i]) <= K+1 : all intervals are K or K+1 size
- length(row_pooling_sequence) = output_row_length+1
For more details on fractional max pooling, see this paper: Benjamin Graham, Fractional Max-Pooling
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classFractionalMaxPool.Inputs<T extends TNumber>static classOptional attributes forFractionalMaxPool -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe name of this op, as known by TensorFlow core engine -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGets colPoolingSequence. column pooling sequence, needed to calculate gradient.static <T extends TNumber>
FractionalMaxPool<T> create(Scope scope, Operand<T> value, List<Float> poolingRatio, FractionalMaxPool.Options... options) Factory method to create a class wrapping a new FractionalMaxPool operation.static FractionalMaxPool.Optionsdeterministic(Boolean deterministic) Sets the deterministic option.output()Gets output. output tensor after fractional max pooling.static FractionalMaxPool.Optionsoverlapping(Boolean overlapping) Sets the overlapping option.static FractionalMaxPool.OptionspseudoRandom(Boolean pseudoRandom) Sets the pseudoRandom option.Gets rowPoolingSequence. row pooling sequence, needed to calculate gradient.static FractionalMaxPool.OptionsSets the seed option.static FractionalMaxPool.OptionsSets the seed2 option.
-
Field Details
-
OP_NAME
The name of this op, as known by TensorFlow core engine- See Also:
-
-
Constructor Details
-
FractionalMaxPool
-
-
Method Details
-
create
@Endpoint(describeByClass=true) public static <T extends TNumber> FractionalMaxPool<T> create(Scope scope, Operand<T> value, List<Float> poolingRatio, FractionalMaxPool.Options... options) Factory method to create a class wrapping a new FractionalMaxPool operation.- Type Parameters:
T- data type forFractionalMaxPooloutput and operands- Parameters:
scope- current scopevalue- 4-D with shape[batch, height, width, channels].poolingRatio- Pooling ratio for each dimension ofvalue, currently only supports row and col dimension and should be >= 1.0. For example, a valid pooling ratio looks like [1.0, 1.44, 1.73, 1.0]. The first and last elements must be 1.0 because we don't allow pooling on batch and channels dimensions. 1.44 and 1.73 are pooling ratio on height and width dimensions respectively.options- carries optional attribute values- Returns:
- a new instance of FractionalMaxPool
-
pseudoRandom
Sets the pseudoRandom option.- Parameters:
pseudoRandom- When set to True, generates the pooling sequence in a pseudorandom fashion, otherwise, in a random fashion. Check paper Benjamin Graham, Fractional Max-Pooling for difference between pseudorandom and random.- Returns:
- this Options instance.
-
overlapping
Sets the overlapping option.- Parameters:
overlapping- When set to True, it means when pooling, the values at the boundary of adjacent pooling cells are used by both cells. For example:index 0 1 2 3 4value 20 5 16 3 7If the pooling sequence is [0, 2, 4], then 16, at index 2 will be used twice. The result would be [20, 16] for fractional max pooling.
- Returns:
- this Options instance.
-
deterministic
Sets the deterministic option.- Parameters:
deterministic- When set to True, a fixed pooling region will be used when iterating over a FractionalMaxPool node in the computation graph. Mainly used in unit test to make FractionalMaxPool deterministic.- Returns:
- this Options instance.
-
seed
Sets the seed option.- Parameters:
seed- If either seed or seed2 are set to be non-zero, the random number generator is seeded by the given seed. Otherwise, it is seeded by a random seed.- Returns:
- this Options instance.
-
seed2
Sets the seed2 option.- Parameters:
seed2- An second seed to avoid seed collision.- Returns:
- this Options instance.
-
output
-
rowPoolingSequence
-
colPoolingSequence
-