Concat¶
Description¶
This module performs the function of concatenation of input tensors along a given axis. It is similar to the concatenate function in numpy.
Initializing¶
def __init__(self, axis, name=None):
Parameters
Parameter | Allowed types | Description | Default |
---|---|---|---|
axis | int | The axis along which the tensors are concatenated | - |
name | str | Layer name | None |
Explanations
-
Examples¶
Necessary imports.
import numpy as np
from PuzzleLib.Backend import gpuarray
from PuzzleLib.Modules import Concat
Info
gpuarray
is required to properly place the tensor in the GPU.
Let us generate synthetic 4D tensors:
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)
Let us initialize the operation with concatenation along the axis of the batch (axis=0
):
concat = Concat(axis=0)
outdata = concat(data)
print(outdata.shape)
(22, 10, 5, 3)
Let us reinitialize the data for concatenation along the axis of the maps:
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)