Spec-Zone.ru › TensorFlow C++ 2.9

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, Дробное максимальное пулингование

Аргументы:

  • 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, Дробное максимальное пулингование.
  • 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
)

© 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/versions/r2.9/api_docs/cc/class/tensorflow/ops/fractional-max-pool

Spec-Zone.ru

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