tf.compat.v1.nn.fractional_max_pool
Выполняет дробное максимальное пулингирование входных данных. (устарело)
tf.compat.v1.nn.fractional_max_pool(
value, pooling_ratio, pseudo_random=False, overlapping=False,
deterministic=False, seed=0, seed2=0, name=None
)
Это устаревшая версия fractional_max_pool.
Дробное максимальное пулингирование немного отличается от обычного максимального пулингирования. При обычном максимальном пулингировании вы уменьшаете набор входных данных, выбирая максимальное значение из меньших подмножеств 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
| Аргументы | |
|---|---|
value | A Tensor. 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, генерирует последовательность пулингирования псевдослучайным образом, в противном случае - случайным образом. Обратитесь к (Graham, 2015) для различий между псевдослучайным и случайным. |
overlapping | Необязательный bool. По умолчанию False. При значении True, это означает, что при пулингировании значения на границе соседних ячеек пулингирования используются обеими ячейками. Например: index 0 1 2 3 4 value 20 5 16 3 7 Если последовательность пулингирования равна [0, 2, 4], то 16 в индексе 2 будет использоваться дважды. Результатом будет [20, 16] для дробного максимального пулингирования. |
deterministic | Необязательный bool. Устарело; используйте fractional_max_pool_v2 вместо этого. |
seed | Необязательный int. По умолчанию 0. Если установлено отличное от нуля значение, генератор случайных чисел инициализируется заданным seed. В противном случае он инициализируется случайным seed. |
seed2 | Необязательный int. Устарело; используйте fractional_max_pool_v2 вместо этого. |
name | Имя операции (необязательно). |
| Возвращаемое значение |
|---|
Кортеж из объектов Tensor (output, row_pooling_sequence, col_pooling_sequence). output: Результат Tensor после дробного максимального пулингирования. Имеет тот же тип, что и value. row_pooling_sequence: A Tensor типа int64. col_pooling_sequence: A Tensor типа int64.
Сноски:
Дробное максимальное пулингирование: Graham, 2015 (pdf)
© 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/python/tf/compat/v1/nn/fractional_max_pool