tensorflow::ops::FractionalMaxPool
#include <nn_ops.h>Выполняет дробное максимальное объединение входных данных.
Краткое содержание
Дробный максимальный пулинг немного отличается от обычного максимального пулинга. В обычном максимальном пулинге вы уменьшаете размер входного множества, беря максимальное значение из меньших N x N подмножеств множества (часто 2 x 2) и пытаясь уменьшить множество в N раз, где N — целое число. Дробный максимальный пулинг, как можно догадаться из слова «дробный», означает, что общий коэффициент уменьшения N не обязательно должен быть целым числом.
Размеры областей объединения генерируются случайным образом, но при этом достаточно однородны. Например, рассмотрим измерение высоты и ограничения на список строк, которые будут являться границами областей объединения.
Сначала определим следующее:
- input_row_length: количество строк из входного набора данных.
- output_row_length: будет меньше, чем input_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
- длина(последовательности_пулинга_строк) = длина_строки_вывода + 1
Более подробную информацию о дробном максимальном пулинге можно найти в этой статье: Бенджамин Грэм, Дробный максимальный пулинг.
Аргументы:
- scope: Объект Scope
- значение: 4D с формой
[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, последовательность объединения генерируется псевдослучайным образом, в противном случае — случайным образом. Различия между псевдослучайным и случайным можно найти в статье Бенджамина Грэма «Дробное максимальное объединение» .
- Перекрытие: Если установлено значение True, это означает, что при объединении ячеек значения на границе смежных ячеек используются обеими ячейками. Например:
index 0 1 2 3 4
value 20 5 16 3 7
Если последовательность объединения — [0, 2, 4], то число 16 с индексом 2 будет использовано дважды. В результате для дробного максимального объединения получится [20, 16].
- deterministic: Если установлено значение True, при итерации по узлу FractionalMaxPool в графе вычислений будет использоваться фиксированная область пулинга. В основном используется в модульных тестах для обеспечения детерминированности FractionalMaxPool .
- seed: Если seed или seed2 заданы ненулевыми значениями, генератор случайных чисел инициализируется заданным значением seed. В противном случае он инициализируется случайным значением seed.
- seed2: Второй начальный элемент для предотвращения конфликта начальных элементов.
Возвращает:
-
Outputданные: выходной тензор после дробного максимального пулинга. -
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
выход
::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 )
Открытые статические функции
Детерминированный
Attrs Deterministic( bool x )
Перекрывающиеся
Attrs Overlapping( bool x )
Псевдослучайный
Attrs PseudoRandom( bool x )
Семя
Attrs Seed( int64 x )
Seed2
Attrs Seed2( int64 x )