тензорный поток:: опс:: ДробныйМаксБассейн

#include <nn_ops.h>

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

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

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

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

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

  1. input_row_length: количество строк из входного набора
  2. выходная_строка_длина: которая будет меньше входной
  3. альфа = 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) = выходная_длина_строки+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
)