tensorflow::ops::FractionalMaxPool

#include <nn_ops.h>

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

Краткое содержание

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

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

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

  1. input_row_length: количество строк из входного набора данных.
  2. output_row_length: будет меньше, чем input_length
  3. альфа = длина_входной_строки / длина_выходной_строки: наш коэффициент уменьшения
  4. K = floor(alpha)
  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. длина(последовательности_пулинга_строк) = длина_строки_вывода + 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 данные: выходной тензор после дробного максимального пулинга.
  • 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

 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
)