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)