Linear¶
Description¶
This module performs a linear transformation to the input data:
y = xW^T + b
where
x - input feature vector;
y - transformed feature vector;
W - layer weights matrix;
b - layer bias vector.
Initializing¶
def __init__(self, insize, outsize, wscale=1.0, useBias=True, initscheme=None, name=None, empty=False, transpose=False):
Parameters
| Parameter | Allowed types | Description | Default |
|---|---|---|---|
| insize | int | Size of the input vector | - |
| outsize | int | Size of the input vector | - |
| wscale | float | Dispersion of random layer weights | 1.0 |
| useBias | bool | Whether to use the bias vector | True |
| initscheme | Union[tuple, str] | Specifies the layer weights initialization scheme. (see createTensorWithScheme). | None -> ("xavier_uniform", "in") |
| name | str | Layer name | None |
| empty | bool | Whether to initialize the matrix of weights and biases | False |
| transpose | bool | Use of a transposed matrix | False |
Explanations
-
Examples¶
Necessary imports.
import numpy as np
from PuzzleLib.Backend import gpuarray
from PuzzleLib.Modules import Linear
Info
gpuarray is required to properly place the tensor in the 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)