OCRudoku  v1.0
Resolve word grid with ease
Loading...
Searching...
No Matches
neural_utils.h
Go to the documentation of this file.
1#include <aio.h>
2#include <math.h>
3#ifndef NEURAL_UTILS_H
4#define NEURAL_UTILS_H
5
6typedef struct
7{
8 double activation;
11 double bias;
12 double* weights;
13}neuron;
14
28
29typedef struct
30{
31 double* inputs;
32 double* outputs;
34
35double sigmoid(double x);
36
37double double_rand(double size);
38
39void init_neuron(neuron* n, size_t nb_connection);
40
42
43void save_neural_network(neural_network* network, const char* file_path);
44
45char** string_split(const char* string, char separator, size_t* res_len);
46
47void load_neural_network(neural_network* network, const char* content);
48
49char* read_file(const char* file);
50
51void process_network(neural_network* network);
52
53double get_network_cost(neural_network* network, training_data expected_data);
54
55void network_process_epoche(neural_network* network, neural_network* memory_network, training_data* data, size_t data_len, size_t batch_size, size_t nb_shuffle, double learning_rate, double* total_cost);
56
57double get_network_total_cost(neural_network* network, training_data* datas, size_t data_len);
58
59void train_network(neural_network* network, training_data* datas, size_t data_len, float learning_rate, size_t batch_size, size_t warmup, size_t warmup_iterations, size_t iterations);
60
61size_t get_network_success_rate(neural_network* network, training_data* datas, size_t data_len, size_t AdaFactor);
62
63training_data* load_dataset(const char* directory, size_t AdaFactor, size_t* nb_data);
64
65char get_data_char_prediction(training_data data, size_t nb_output);
66
67char get_network_char_prediction(neural_network* network, size_t AdaFactor);
68
70
72
74
75void print_training_debug(neural_network* network, training_data* data, size_t data_len);
76
77#endif
char ** string_split(const char *string, char separator, size_t *res_len)
Definition neural_utils.c:262
void print_network_state(neural_network *network)
Definition neural_utils.c:981
void save_neural_network(neural_network *network, const char *file_path)
Definition neural_utils.c:218
void load_neural_network(neural_network *network, const char *content)
Definition neural_utils.c:309
void print_network_activations(neural_network *network)
Definition neural_utils.c:964
double get_network_cost(neural_network *network, training_data expected_data)
Definition neural_utils.c:468
void process_network(neural_network *network)
Definition neural_utils.c:462
training_data * load_dataset(const char *directory, size_t AdaFactor, size_t *nb_data)
Definition neural_utils.c:870
void init_neural_network(neural_network *network)
Definition neural_utils.c:93
double double_rand(double size)
Definition neural_utils.c:25
void train_network(neural_network *network, training_data *datas, size_t data_len, float learning_rate, size_t batch_size, size_t warmup, size_t warmup_iterations, size_t iterations)
Definition neural_utils.c:747
double get_network_total_cost(neural_network *network, training_data *datas, size_t data_len)
Definition neural_utils.c:697
void print_training_debug(neural_network *network, training_data *data, size_t data_len)
Definition neural_utils.c:1002
void network_process_epoche(neural_network *network, neural_network *memory_network, training_data *data, size_t data_len, size_t batch_size, size_t nb_shuffle, double learning_rate, double *total_cost)
Definition neural_utils.c:672
void network_set_input_data(neural_network *network, training_data data)
Definition neural_utils.c:652
double sigmoid(double x)
Definition neural_utils.c:14
char get_data_char_prediction(training_data data, size_t nb_output)
Definition neural_utils.c:712
char * read_file(const char *file)
Definition neural_utils.c:387
char get_network_char_prediction(neural_network *network, size_t AdaFactor)
Definition neural_utils.c:729
size_t get_network_success_rate(neural_network *network, training_data *datas, size_t data_len, size_t AdaFactor)
Definition neural_utils.c:851
void init_neuron(neuron *n, size_t nb_connection)
Definition neural_utils.c:68
Definition neural_utils.h:16
neuron ** hidden
Definition neural_utils.h:25
size_t hidden_height
Definition neural_utils.h:18
neuron * outputs
Definition neural_utils.h:26
size_t nb_output
Definition neural_utils.h:20
size_t hidden_depth
Definition neural_utils.h:19
double learning_rate
Definition neural_utils.h:22
size_t nb_input
Definition neural_utils.h:17
neuron * inputs
Definition neural_utils.h:24
Definition neural_utils.h:7
double * weights
Definition neural_utils.h:12
double local_gradient
Definition neural_utils.h:10
double bias
Definition neural_utils.h:11
double activation
Definition neural_utils.h:8
double activation_input
Definition neural_utils.h:9
Definition neural_utils.h:30
double * inputs
Definition neural_utils.h:31
double * outputs
Definition neural_utils.h:32