tensorflow::ops::FractionalMaxPool
#include <nn_ops.h>
Выполняет дробный max pooling входных данных.
Общие сведения
Дробный max pooling немного отличается от обычного max pooling. При обычном max pooling размер входного набора уменьшается за счёт выбора максимального значения в небольших подмножествах набора размером N x N (часто 2x2); при этом набор пытаются уменьшить в N раз, где N — целое число. Дробный max pooling, как можно догадаться по слову «дробный», означает, что общий коэффициент уменьшения N не обязательно должен быть целым числом.
Размеры областей пулинга генерируются случайным образом, но распределяются достаточно равномерно. Например, рассмотрим измерение высоты и ограничения для списка строк, которые будут границами областей пулинга.
Сначала определим следующее:
- input_row_length : количество строк во входном наборе
- output_row_length : количество строк в выходном наборе, которое будет меньше входного
- alpha = input_row_length / output_row_length : коэффициент уменьшения
- K = floor(alpha)
- row_pooling_sequence : результирующий список строк, являющихся границами областей пулинга
Тогда row_pooling_sequence должна удовлетворять следующим условиям:
- a[0] = 0 : первое значение последовательности равно 0
- a[end] = input_row_length : последнее значение равно размеру
- K <= (a[i+1] - a[i]) <= K+1 : длина всех интервалов равна K или K+1
- length(row_pooling_sequence) = output_row_length+1
Подробнее о дробном max pooling см. в статье: Benjamin Graham, Fractional Max-Pooling
Аргументы:
- scope: объект Scope
- value: 4-D с формой
[batch, height, width, channels]. - pooling_ratio: коэффициент пулинга для каждого измерения
value; в настоящее время поддерживаются только измерения строк и столбцов, коэффициент должен быть >= 1.0. Например, допустимый коэффициент пулинга может выглядеть так: [1.0, 1.44, 1.73, 1.0]. Первый и последний элементы должны быть равны 1.0, поскольку пулинг для измерений пакета и каналов не поддерживается. Значения 1.44 и 1.73 являются коэффициентами пулинга для измерений высоты и ширины соответственно.
Необязательные атрибуты (см. Attrs):
- pseudo_random: Если задано значение True, последовательность пулинга генерируется псевдослучайным образом; в противном случае — случайным образом. Различие между псевдослучайным и случайным способами описано в статье Benjamin Graham, Fractional Max-Pooling.
- overlapping: Если задано значение True, при пулинге значения на границах соседних ячеек пулинга используются обеими ячейками. Например:
index 0 1 2 3 4
value 20 5 16 3 7
Если последовательность пулинга равна [0, 2, 4], значение 16 с индексом 2 будет использоваться дважды. Результатом дробного max pooling будет [20, 16].
- deterministic: Если задано значение True, при обходе узла FractionalMaxPool в графе вычислений будет использоваться фиксированная область пулинга. В основном применяется в модульных тестах, чтобы обеспечить детерминированность FractionalMaxPool.
- seed: Если для seed или seed2 задано ненулевое значение, генератор случайных чисел инициализируется указанным значением. В противном случае используется случайное начальное значение.
- seed2: Второе начальное значение, чтобы избежать совпадения значений seed.
Возвращает:
-
Outputoutput: выходной тензор после дробного max pooling. -
Outputrow_pooling_sequence: последовательность строк пулинга, необходимая для вычисления градиента. -
Outputcol_pooling_sequence: последовательность столбцов пулинга, необходимая для вычисления градиента.
| Конструкторы и деструкторы | |
|---|---|
FractionalMaxPool(const ::tensorflow::Scope & scope, ::tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio) | |
FractionalMaxPool(const ::tensorflow::Scope & scope, ::tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio, const FractionalMaxPool::Attrs & attrs) |
| Публичные атрибуты | |
|---|---|
col_pooling_sequence | |
operation | |
output | |
row_pooling_sequence | |
| Публичные статические функции | |
|---|---|
Deterministic(bool x) | |
Overlapping(bool x) | |
PseudoRandom(bool x) | |
Seed(int64 x) | |
Seed2(int64 x) | |
| Структуры | |
|---|---|
| tensorflow::ops::FractionalMaxPool::Attrs | Методы установки необязательных атрибутов для FractionalMaxPool. |
Публичные атрибуты
col_pooling_sequence
::tensorflow::Output col_pooling_sequence
operation
Operation operation
output
::tensorflow::Output output
row_pooling_sequence
::tensorflow::Output row_pooling_sequence
Публичные функции
FractionalMaxPool
FractionalMaxPool( const ::tensorflow::Scope & scope, ::tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio )
FractionalMaxPool
FractionalMaxPool( const ::tensorflow::Scope & scope, ::tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio, const FractionalMaxPool::Attrs & attrs )
Публичные статические функции
Deterministic
Attrs Deterministic( bool x )
Overlapping
Attrs Overlapping( bool x )
PseudoRandom
Attrs PseudoRandom( bool x )
Seed
Attrs Seed( int64 x )
Seed2
Attrs Seed2( int64 x )
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/cc/class/tensorflow/ops/fractional-max-pool