Spec-Zone.ru › TensorFlow

tf.nn.fractional_max_pool

Выполняет дробный max pooling входных данных.

tf.nn.fractional_max_pool(
    value,
    pooling_ratio,
    pseudo_random=False,
    overlapping=False,
    seed=0,
    name=None
)

Дробный max pooling немного отличается от обычного max pooling. При обычном max pooling размер входного набора уменьшается путем выбора максимального значения из небольших подобластей набора размером N x N (часто 2x2), при этом набор пытаются уменьшить в N раз, где N — целое число. Дробный max pooling, как можно догадаться по слову «дробный», означает, что общий коэффициент уменьшения N не обязательно должен быть целым числом.

Размеры областей pooling генерируются случайным образом, но распределяются довольно равномерно. Например, рассмотрим измерение высоты и ограничения на список строк, которые будут границами областей pooling.

Сначала определим следующее:

  1. input_row_length : количество строк во входном наборе
  2. output_row_length : количество строк, которое будет меньше размера входного набора
  3. alpha = input_row_length / output_row_length : коэффициент уменьшения
  4. K = floor(alpha)
  5. row_pooling_sequence : результирующий список строк — границ областей pooling

Тогда row_pooling_sequence должен удовлетворять следующим условиям:

  1. a[0] = 0 : первое значение последовательности равно 0
  2. a[end] = input_row_length : последнее значение последовательности равно размеру
  3. K <= (a[i+1] - a[i]) <= K+1 : размер всех интервалов равен K или K+1
  4. length(row_pooling_sequence) = output_row_length+1
Аргументы
value A Tensor. 4-D with shape [batch, height, width, channels].
pooling_ratio An int or list of ints that has length 1, 2 or 4. Коэффициент pooling для каждого измерения value; в настоящее время поддерживаются только измерения строк и столбцов, значение должно быть >= 1.0. Например, допустимый коэффициент pooling выглядит так: [1.0, 1.44, 1.73, 1.0]. Первый и последний элементы должны быть равны 1.0, поскольку pooling для измерений пакета и каналов не поддерживается. Значения 1.44 и 1.73 — коэффициенты pooling для измерений высоты и ширины соответственно.
pseudo_random Необязательный bool. По умолчанию — False. Если задано значение True, последовательность pooling генерируется псевдослучайным образом, в противном случае — случайным образом. Различия между псевдослучайной и случайной генерацией описаны в статье (Graham, 2015).
overlapping Необязательный bool. По умолчанию — False. Если задано значение True, при pooling значения на границе соседних ячеек используются обеими ячейками. Например: index 0 1 2 3 4 value 20 5 16 3 7 Если последовательность pooling равна [0, 2, 4], то значение 16 с индексом 2 будет использовано дважды. Результатом дробного max pooling будет [20, 16].
seed Необязательный int. По умолчанию — 0. Если задано ненулевое значение, генератор случайных чисел инициализируется указанным seed. В противном случае он инициализируется случайным seed.
name Имя операции (необязательно).
Возвращает

Кортеж объектов Tensor (output, row_pooling_sequence, col_pooling_sequence). output: выходной Tensor после дробного max pooling. Имеет тот же тип, что и value. row_pooling_sequence: Tensor типа int64. col_pooling_sequence: Tensor типа int64.

Вызывает исключение
ValueError Если seed не указан, а детерминированность операций включена.
Ссылки
Дробный max pooling: Graham, 2015 (pdf)

© 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/nn/fractional_max_pool

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API