OCR / XOR / NN / NN_Tools / layer.h
layer.h
Raw
#ifndef LAYER_H
#define	LAYER_H

#include "matrix.h"

#include <stdlib.h>


typedef struct layer
{ 
	float *weight;
	float *neuron;
	float *bias;
	int nbNeuron;
	float (*activation)(float val);
	float (*dActivation)(float val);

	struct layer *next;
	struct layer *prev;
} t_layer;

t_layer* CreateLayer(int nbneuron, t_layer *prev);
t_layer* CreateActivationLayer(t_layer *prev, float (*activation)(float val), float (*dActivation)(float val));

void FeedForward(t_layer* layer);
void BackPropagation(t_layer* layer, float* DError, float trainSpeed);

void FreeNetwork(t_layer* layer);

#endif