KMaxPool

Описание

Info

Родительский класс: Module

Производные классы: -

K-Max Pooling - это операция пулинга, представляющая собой обобщение макс-пулинга по параметру времени, используемого в модели Max-TDNN и отличающегося от локального макс-пулинга, применяемого в сверточных сетях для распознавания объектов (LeCun et al., 1998).

K-Max Pooling выбирает подпоследовательность из k наибольших значений последовательности. В данном модуле реализован частный случай, когда относительные позиции выбранных элементов не сохраняются - на выход поступают отсортированные значения.

Инициализация

def __init__(self, topk, axis, name=None):

Параметры

Параметр Возможные типы Описание По умолчанию
topk int Количество максимальных значений. -
axis int Ось, вдоль которой вычисляется операция. -
name str Имя слоя. None

Пояснения

-

Примеры

Необходимые импорты.

>>> import numpy as np
>>> from PuzzleLib.Backend import gpuarray
>>> from PuzzleLib.Modules import KMaxPool

Info

gpuarray необходим для правильного размещения тензора на GPU

>>> data = gpuarray.to_gpu(np.random.randint(0, 9, (1, 1, 10)).astype(np.float32))
>>> print(data)
[[[2. 0. 7. 5. 8. 3. 5. 0. 3. 0.]]]
>>> topk, axis = 2, 2
>>> kmaxpool = KMaxPool(topk=3, axis=2)
>>> kmaxpool(data)
[[[5. 7. 8.]]]