| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Net
Description
Synopsis
- data NetParams a = NetParams {}
- netParamsFromArrays :: Array a -> Array a -> Array a -> Array a -> NetParams a
- linear1 :: (Additive a, Multiplicative a) => Para (NetParams a) (Array a) (Array a)
- bias1 :: Num a => Para (NetParams a) (Array a) (Array a)
- relu1 :: (Ord a, Additive a) => Para (NetParams a) (Array a) (Array a)
- linear2 :: (Additive a, Multiplicative a) => Para (NetParams a) (Array a) (Array a)
- bias2 :: Num a => Para (NetParams a) (Array a) (Array a)
- model :: (Ord a, Num a, Additive a, Multiplicative a) => Para (NetParams a) (Array a) (Array a)
- forward :: (Ord a, Num a, Additive a, Multiplicative a) => NetParams a -> Array a -> Array a
- mseLoss :: (Fractional a, Additive a) => Array a -> Array a -> (a, Array a)
- type Boundary a = These a a
Parameter bundle
Network parameters. Weights are stored as dense matrices so that
Dense can be used for the linear maps; biases and
activations remain as Array vectors.
Layer primitives
linear1 :: (Additive a, Multiplicative a) => Para (NetParams a) (Array a) (Array a) Source #
First linear layer.
linear2 :: (Additive a, Multiplicative a) => Para (NetParams a) (Array a) (Array a) Source #
Second linear layer.
Model
model :: (Ord a, Num a, Additive a, Multiplicative a) => Para (NetParams a) (Array a) (Array a) Source #
Full 2-layer MLP: linear1 → bias1 → relu → linear2 → bias2.
forward :: (Ord a, Num a, Additive a, Multiplicative a) => NetParams a -> Array a -> Array a Source #
Run the model with explicit parameters.
Loss
mseLoss :: (Fractional a, Additive a) => Array a -> Array a -> (a, Array a) Source #
Mean-squared-error loss and its gradient w.r.t. the prediction.
L = (1/n) Σ (y - target)², dLdy = (2n)(y - target).