tensorflow::ops::FractionalMaxPool
#include <nn_ops.h>
Выполняет дробное максимальное пулинговое преобразование входных данных.
Summary
Дробное максимальное пулинговое преобразование немного отличается от обычного максимального пулингового преобразования. При обычном максимальном пулинговом преобразовании входной набор уменьшается путем взятия максимального значения из меньших подсекций 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 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