Spec-Zone.ru › TensorFlow C++

tensorflow::ops::FractionalMaxPool

#include <nn_ops.h>

Выполняет дробный max pooling входных данных.

Общие сведения

Дробный max pooling немного отличается от обычного max pooling. При обычном max pooling размер входного набора уменьшается за счёт выбора максимального значения в небольших подмножествах набора размером N x N (часто 2x2); при этом набор пытаются уменьшить в N раз, где N — целое число. Дробный max pooling, как можно догадаться по слову «дробный», означает, что общий коэффициент уменьшения 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

Подробнее о дробном max pooling см. в статье: Benjamin Graham, Fractional Max-Pooling

Аргументы:

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

index 0 1 2 3 4

value 20 5 16 3 7

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

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

Возвращает:

  • Output output: выходной тензор после дробного max pooling.
  • 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 operation

output

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

Публичные статические функции

Deterministic

Attrs Deterministic(
  bool x
)

Overlapping

Attrs Overlapping(
  bool x
)

PseudoRandom

Attrs PseudoRandom(
  bool x
)

Seed

Attrs Seed(
  int64 x
)

Seed2

Attrs Seed2(
  int64 x
)

© 2022 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/api_docs/cc/class/tensorflow/ops/fractional-max-pool

Spec-Zone.ru

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