Reshape

Описание

Info

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

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

Данный модуль реализует операцию приведения тензора к новой заданной размерности.

Инициализация

def __init__(self, shape, showWarnings=True, name=None):

Параметры

Параметр Возможные типы Описание По умолчанию
shape tuple Кортеж новой размерности тензора. -
showWarnings bool Показывать ли предупреждения. True
name str Имя слоя. None

Пояснения

shape - может принимать специальные индикаторы 0 и -1 (см. примеры).

Примеры

Необходимые импорты.

>>> import numpy as np
>>> from PuzzleLib.Backend import gpuarray
>>> from PuzzleLib.Modules import Reshape

Info

gpuarray необходим для правильного размещения тензора на 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)

Модулю можно передать значение -1 в кортеже размерности для той оси, размерность которой будет высчитываться по остаточному принципу:

>>> reshape = Reshape((10, -1, 50))
>>> reshape(data)
>>> print(reshape.data.shape)
(10, 20, 50)

Также можно передать значение 0, чтобы оставить размерность соответствующей оси неизменной:

>>> 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)