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 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 )
© 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/api_docs/cc/class/tensorflow/ops/fractional-max-pool