Reshape¶
Description¶
This module reduces the tensor to a new specified dimension.
Initializing¶
def __init__(self, shape, showWarnings=True, name=None):
Parameters
Parameter | Allowed types | Description | Default |
---|---|---|---|
shape | tuple | Tuple of a new tensor shape | - |
showWarnings | bool | Whether to show warnings | True |
name | str | Layer name | None |
Explanations
shape
- can take special indicators 0
and -1
(see examples).
Examples¶
Necessary imports.
import numpy as np
from PuzzleLib.Backend import gpuarray
from PuzzleLib.Modules import Reshape
Info
gpuarray
is required to properly place the tensor in the GPU
inshape = (10, 10, 10, 10)
data = gpuarray.to_gpu(np.random.randn(*inshape).astype(np.float32))
reshape = Reshape((10, 10, 100))
reshape(data)
print(reshape.data.shape)
(10, 10, 100)
We can pass -1
in the shape tuple for the axis whose dimension will be calculated according to the residual principle:
reshape = Reshape((10, -1, 50))
reshape(data)
print(reshape.data.shape)
(10, 20, 50)
It is also possible to pass 0
to leave the dimension of the corresponding axis unchanged:
inshape = (1, 4, 7, 7)
data = gpuarray.to_gpu(np.random.randn(*inshape).astype(np.float32))\
reshape = Reshape((0, 2, -1, 0))
reshape(data)
print(reshape.data.shape)
(1, 2, 14, 7)