Linear¶
Описание¶
Этот модуль выполняет операцию линейного преобразования к входным данным:
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)