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
Сгенерируем синтетические четырёхмерные тензоры:
np.random.seed(123)
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)
(7, 10, 5, 3)
(6, 10, 5, 3)
(9, 10, 5, 3)
Инициализируем операцию со склейкой вдоль оси батча (axis=0
):
concat = Concat(axis=0)
outdata = concat(data)
print(outdata.shape)
(22, 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, 6, 4, 5)
(10, 4, 4, 5)
concat = Concat(axis=1)
outdata = concat(data)
print(outdata.shape)
(10, 16, 4, 5)