1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| #ifndef CONNECTED_LAYER_H
| #define CONNECTED_LAYER_H
|
| #include "activations.h"
|
| typedef struct{
| int inputs;
| int outputs;
| double *weights;
| double *biases;
|
| double *weight_updates;
| double *bias_updates;
|
| double *weight_momentum;
| double *bias_momentum;
|
| double *output;
| double *delta;
|
| ACTIVATION activation;
|
| } connected_layer;
|
| connected_layer *make_connected_layer(int inputs, int outputs, ACTIVATION activation);
|
| void forward_connected_layer(connected_layer layer, double *input);
| void backward_connected_layer(connected_layer layer, double *input, double *delta);
| void learn_connected_layer(connected_layer layer, double *input);
| void update_connected_layer(connected_layer layer, double step, double momentum, double decay);
|
|
| #endif
|
|