Spec-Zone.ru › TensorFlow C++ 1.15

tensorflow::ops::FractionalMaxPool

#include <nn_ops.h>

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

Summary

Дробное максимальное пулинговое преобразование немного отличается от обычного максимального пулингового преобразования. При обычном максимальном пулинговом преобразовании входной набор уменьшается путем взятия максимального значения из меньших подсекций 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 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
)

Общедоступные статические функции

Детерминированный

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 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/ops/fractional-max-pool

Spec-Zone.ru

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