Skip to content

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)