tensorflow::ops::FractionalMaxPool
#include <nn_ops.h>
Выполняет дробное максимальное пуллинг входных данных.
Краткое описание
Дробный максимальный пуллинг немного отличается от обычного максимального пуллинга. В обычном максимальном пуллинге вы уменьшаете набор входных данных, выбирая максимальное значение в меньших подмножествах размера N x N (часто 2x2) и пытаетесь уменьшить набор в N раз, где N — целое число. Дробный максимальный пуллинг, как можно догадаться из названия, означает, что коэффициент общего уменьшения N не обязательно должен быть целым числом.
Размеры областей пуллинга генерируются случайным образом, но достаточно равномерно. Например, рассмотрим размерность высоты и ограничения на список строк, которые будут границами пуллинга.
Сначала определим следующее:
- input_row_length: количество строк из входного набора
- output_row_length: которое будет меньше, чем входное
- alpha = input_row_length / output_row_length: наш коэффициент уменьшения
- K = floor(alpha)
- row_pooling_sequence: этот результат списка строк границ пуллинга
Затем row_pooling_sequence должен удовлетворять следующим условиям:
- a[0] = 0: первое значение последовательности равно 0
- a[end] = input_row_length: последнее значение последовательности равно размеру
- K ≤ (a[i+1] - a[i]) ≤ K+1: все интервалы имеют размер K или K+1
- 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.
Возвращает:
-
Outputoutput: выходной тензор после дробного максимального пуллинга. -
Outputrow_pooling_sequence: последовательность пуллинга строк, необходимая для расчета градиента. -
Outputcol_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
последовательность_пуллинга_строк
::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