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, Дробное максимальное пулингование
Аргументы:
- 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.
Возвращаемое значение:
-
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 )
© 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