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, Фракционная максимальная пулинговая операция
Аргументы:
- 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 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/r2.3/api_docs/cc/class/tensorflow/ops/fractional-max-pool