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