Concat¶
Описание¶
Этот модуль выполняет функцию конкатенации входных тензоров вдоль заданной оси. Аналог функции concatenate в numpy.
Инициализация¶
def __init__(self, axis, name=None):
Параметры
Параметр | Возможные типы | Описание | По умолчанию |
---|---|---|---|
axis | int | Ось, вдоль которой происходит склейка массивов. | - |
name | str | Имя слоя. | None |
Пояснения
-
Примеры¶
Необходимые импорты.
>>> import numpy as np
>>> from PuzzleLib.Backend import gpuarray
>>> from PuzzleLib.Modules import Concat
Info
gpuarray
необходим для правильного размещения тензора на GPU
Сгенерируем синтетические четырёхмерные тензоры:
>>> data = []
>>> for i in range(3):
... data.append(gpuarray.to_gpu(np.random.randn(np.random.randint(low=5, high=10), 10, 5, 3).astype(np.float32)))
... print(data[i].shape)
(5, 10, 5, 3)
(7, 10, 5, 3)
(5, 10, 5, 3)
Инициализируем операцию со склейкой вдоль оси батча (axis=0
):
>>> concat = Concat(axis=0)
>>> outdata = concat(data)
>>> outdata.shape
(17, 10, 5, 3)
Переинициализируем данные для склейки по оси карт:
>>> data = []
>>> for i in range(3):
... data.append(gpuarray.to_gpu(np.random.randn(10, np.random.randint(low=4, high=8), 4, 5).astype(np.float32)))
... print(data[i].shape)
(10, 6, 4, 5)
(10, 4, 4, 5)
(10, 4, 4, 5)
>>> concat = Concat(axis=1)
>>> outdata = concat(data)
>>> outdata.shape
(10, 14, 4, 5)