size_t mg_layer_param_count(const mg_layer *l)
Get the number of trainable parameters in a layer.
bool mg_layer_init(mg_graph *g, mg_layer *l, size_t n_in, size_t n_out, bool non_linear)
Initialize a layer.
void mg_layer_free(mg_layer *l)
Free memory owned by a layer.
void mg_layer_params(const mg_layer *l, mg_value **out)
Copy a layer's parameters into a flat array.
bool mg_layer_call(mg_graph *g, mg_layer *l, mg_value **x, mg_value **out)
Evaluate a layer with the given input values.
struct mg_graph mg_graph
Opaque owner of a linked list of mg_value nodes.
Definition value.h:22
struct mg_value mg_value
Opaque scalar node in a computation graph.
Definition value.h:30
Fully connected neuron API.
Layer of neurons in a neural network.
Definition layer.h:22
size_t n_out
Definition layer.h:24
mg_neuron * neurons
Definition layer.h:25
size_t n_in
Definition layer.h:23
Fully connected neuron in a neural network.
Definition neuron.h:22