тензорный поток :: ops :: FractionalMaxPool

#include <nn_ops.h>

Выполняет дробное максимальное объединение на входе.

Резюме

Дробное максимальное объединение немного отличается от обычного максимального объединения. При обычном максимальном объединении вы уменьшаете размер входного набора, беря максимальное значение из меньших N x N подразделов набора (часто 2x2), и пытаетесь уменьшить набор в N раз, где N - целое число. Дробное максимальное объединение, как и следовало ожидать от слова «дробный», означает, что общий коэффициент уменьшения N не обязательно должен быть целым числом.

Размеры областей объединения генерируются случайным образом, но довольно однородны. Например, давайте посмотрим на размер высоты и ограничения на список строк, которые будут границами пула.

Сначала мы определяем следующее:

  1. input_row_length: количество строк из входного набора
  2. output_row_length: который будет меньше, чем вход
  3. alpha = input_row_length / output_row_length: наш коэффициент уменьшения
  4. K = пол (альфа)
  5. row_pooling_sequence: это список результатов граничных строк пула

Затем row_pooling_sequence должен удовлетворять:

  1. a [0] = 0: первое значение последовательности - 0
  2. a [end] = input_row_length: последнее значение последовательности - размер
  3. K <= (a [i + 1] - a [i]) <= K + 1: все интервалы имеют размер K или K + 1
  4. длина (row_pooling_sequence) = output_row_length + 1

Дополнительные сведения о дробном максимальном объединении см. В этой статье: Бенджамин Грэм, дробное максимальное объединение

Аргументы:

  • scope: объект Scope
  • значение: 4-D с формой [batch, height, width, channels] .
  • pooling_ratio: коэффициент объединения для каждого измерения value , в настоящее время поддерживает только измерения row и col и должен быть> = 1.0. Например, допустимый коэффициент объединения выглядит как [1,0, 1,44, 1,73, 1,0]. Первый и последний элементы должны быть 1.0, потому что мы не разрешаем объединение по размерам пакетов и каналов. 1,44 и 1,73 - это коэффициент объединения по высоте и ширине соответственно.

Необязательные атрибуты (см. Attrs ):

  • pseudo_random: при значении True генерирует последовательность объединения псевдослучайным образом, в противном случае - случайным образом. Проверьте статью Бенджамина Грэма, Fractional Max-Pooling, на предмет разницы между псевдослучайным и случайным.
  • overlapping: если установлено значение True, это означает, что при объединении значения на границе соседних ячеек объединения используются обеими ячейками. Например:

index 0 1 2 3 4

value 20 5 16 3 7

Если последовательность объединения равна [0, 2, 4], то 16 с индексом 2 будет использоваться дважды. Результатом будет [20, 16] для дробного максимального объединения.

  • детерминированный: при значении True фиксированная область объединения будет использоваться при итерации по узлу FractionalMaxPool в графе вычислений. В основном используется в модульном тесте, чтобы сделать FractionalMaxPool детерминированным.
  • seed: если для seed или seed2 задано значение, отличное от нуля, генератор случайных чисел заполняется данным семенем. В противном случае он засевается случайным семенем.
  • seed2: второе семя, чтобы избежать столкновения семян.

Возврат:

  • 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)

Структуры

tenorflow :: 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
)

Семя2

Attrs Seed2(
  int64 x
)