Skip to content

Transpose

Описание

Info

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

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

Данный модуль реализует перестановку осей входного тензора в желаемом порядке. Аналог функции transpose в numpy.

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

def __init__(self, axes=None, name=None):

Параметры

Параметр Возможные типы Описание По умолчанию
axes tuple Кортеж с желаемым расположением осей None
name str Имя слоя None

Пояснения

axes - если None, то будет проводиться обычная операция транспонирования, в ином случае проводится перестановка в заданном порядке.

Примеры

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

import numpy as np
from PuzzleLib.Backend import gpuarray
from PuzzleLib.Modules import Transpose

Info

gpuarray необходим для правильного размещения тензора на GPU

shape = (10, 3, 5, 4, 2)
axes = (2, 4, 1, 3, 0)
data = gpuarray.to_gpu(np.random.randn(*shape).astype(np.float32))

Инициализируем операцию с параметрами по умолчанию (axes=None):

transpose = Transpose()
outdata = transpose(data)
print(outdata.shape)
(2, 4, 5, 3, 10)

На этот раз зададим желаемый порядок осей:

transpose = Transpose(axes)
outdata = transpose(data)
print(outdata.shape)
(5, 2, 3, 4, 10)