Concat

Описание

Info

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

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

Этот модуль выполняет функцию конкатенации входных тензоров вдоль заданной оси. Аналог функции 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)