Spec-Zone.ru › TensorFlow C++ 2.4

tensorflow::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 = 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. length(row_pooling_sequence) = output_row_length+1

Для более подробной информации о дробном максимальном пуллинге см. эту статью: Benjamin Graham, Fractional Max-Pooling

Аргументы:

  • scope: объект Scope
  • value: 4-мерный с формой [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, генерирует последовательность пуллинга псевдослучайным образом, в противном случае случайным образом. Разница между псевдослучайным и случайным генератором показана в статье Benjamin Graham, Fractional Max-Pooling.
  • overlapping: Если установлено в 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: Второй seed для предотвращения столкновений seed.

Возвращает:

  • Output 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
::tensorflow::Output
operation
Operation
output
::tensorflow::Output
row_pooling_sequence
::tensorflow::Output
Публичные статические функции
Deterministic(bool x)
Attrs
Overlapping(bool x)
Attrs
PseudoRandom(bool x)
Attrs
Seed(int64 x)
Attrs
Seed2(int64 x)
Attrs
Структуры
tensorflow::ops::FractionalMaxPool::Attrs

Необязательные установки атрибутов для FractionalMaxPool.

Публичные атрибуты

col_pooling_sequence

::tensorflow::Output col_pooling_sequence

операция

Operation operation

выход

::tensorflow::Output output

последовательность_пуллинга_строк

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

Seed

Attrs Seed(
  int64 x
)

Seed2

Attrs Seed2(
  int64 x
)

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/cc/class/tensorflow/ops/fractional-max-pool

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API