std1.0.0-beta-7 SafeC docs

std :: ml::nn

Struct std::Mlp

#include <std/ml/nn.h> source

struct Mlp {
    struct Vec<&FloatTensor> params;
    unsigned long nLayers;
    unsigned long inDim;
    unsigned long outDim;
    int act;
    int outAct;
}

inDim -> hidden (x hiddenLayers) -> outDim, 'act' after every hidden layer and 'outAct' after the last. hiddenLayers 0 is a single linear layer. Weights are [in, out] (transpose a PyTorch nn.Linear's), biases [out], initialized like PyTorch's nn.Linear: U(-1/sqrt(in), 1/sqrt(in)). params holds W0, b0, W1, b1, ... and every one requires grad.

Fields

§struct Vec<&FloatTensor> paramssource
§unsigned long nLayerssource
§unsigned long inDimsource
§unsigned long outDimsource
§int actsource
§int outActsource

Methods

§&FloatTensor forward(const &FloatTensor x) constsource · definition

[batch, inDim] -> [batch, outDim]

§void collect_params(&Vec<&FloatTensor> out) constsource · definition

Parameterized (module.h): the trained tensors, and what a copy or a file carries.

§void collect_state(&Vec<&FloatTensor> out) constsource · definition
§void drop()source · definition
§void free() consumesource · definition

= drop()

§static struct Mlp new( unsigned long inDim, unsigned long hidden, unsigned long hiddenLayers, unsigned long outDim, int act, int outAct, &Rng rng, )source · definition