tf.raw_ops.FractionalMaxPool
Выполняет дробное максимальное пулингирование на входе.
tf.raw_ops.FractionalMaxPool(
value,
pooling_ratio,
pseudo_random=False,
overlapping=False,
deterministic=False,
seed=0,
seed2=0,
name=None
)
Дробное максимальное пулингирование немного отличается от обычного максимального пулингирования. В обычном максимальном пулингировании вы уменьшаете набор ввода, беря максимальное значение из меньших подмножеств 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
| Аргументы | |
|---|---|
value | A Tensor. Должен быть одного из следующих типов: float32, float64, int32, int64. 4-мерный с формой [batch, height, width, channels]. |
pooling_ratio | Список floats, длина которого равна >= 4. Коэффициент пулингирования для каждой размерности value, в настоящее время поддерживает только размерности строк и столбцов и должен быть ≥ 1,0. Например, допустимый коэффициент пулингирования выглядит так: [1,0, 1,44, 1,73, 1,0]. Первые и последние элементы должны быть равны 1,0, так как мы не разрешаем пулингирование по размерностям пакет и каналы. 1,44 и 1,73 — это коэффициенты пулингирования по размерностям высоты и ширины соответственно. |
pseudo_random | Необязательный bool. По умолчанию False. При значении True генерирует последовательность пулингирования псевдослучайным образом, в противном случае — случайным образом. Разницу между псевдослучайным и случайным генератором последовательностей см. в статье Benjamin Graham, Fractional Max-Pooling. |
overlapping | Необязательный bool. По умолчанию False. При значении True при пулингировании значения на границах смежных ячеек пулингирования используются обеими ячейками. Например:
Если последовательность пулингирования — [0, 2, 4], то 16 в индексе 2 будет использоваться дважды. Результатом дробного максимального пулингирования будет [20, 16]. |
deterministic | Необязательный bool. По умолчанию False. При значении True используется фиксированная область пулингирования при итерации по узлу FractionalMaxPool в вычислительном графе. В основном используется в тестовых сценариях для обеспечения детерминированности FractionalMaxPool. |
seed | Необязательный int. По умолчанию 0. Если seed или seed2 установлены отличным от нуля значением, генератор случайных чисел инициализируется заданным значением seed. В противном случае он инициализируется случайным seed. |
seed2 | Необязательный int. По умолчанию 0. Второе значение seed для предотвращения коллизий. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
Кортеж из Tensor объектов (выход, row_pooling_sequence, col_pooling_sequence). | |
output | A Tensor. Имеет тот же тип, что и value. |
row_pooling_sequence | A Tensor типа int64. |
col_pooling_sequence | A Tensor типа int64. |
© 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/python/tf/raw_ops/FractionalMaxPool