Linear

Описание

Info

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

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

Этот модуль выполняет операцию линейного преобразования к входным данным:

y = xW^T + b

где

x - вектор признаков на входе;
y - вектор признаков после преобразования;
W - матрица весов слоя;
b - вектор смещений слоя.

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

def __init__(self,  insize,  outsize,  wscale=1.0,  useBias=True,  initscheme=None,  name=None,  empty=False,  transpose=False):

Параметры

Параметр Возможные типы Описание По умолчанию
insize int Размер входного вектора. -
outsize int Размер выходного вектора. -
wscale float Дисперсия случайных весов слоя. 1.0
useBias bool Использовать ли смещения. True
initscheme Union[tuple, str] Указывает схему инициализации весов слоя (см. createTensorWithScheme). None -> ("xavier_uniform", "in")
name str Имя слоя None
empty bool Инициализировать ли матрицу весов и смещений. False
transpose bool Использование транспонированной матрицы. False

Пояснения

-

Примеры

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

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

Info

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

>>> batchsize, insize, outsize = 10, 32, 16
>>> data = gpuarray.to_gpu(np.random.randn(batchsize, insize).astype(np.float32))
>>> print(data.shape)
(10, 32)
>>> linear = Linear(insize, outsize)
>>> print(linear.W.shape)
(32, 16)
>>> linear(data)
>>> print(linear.data.shape)
(10, 16)