OCRudoku  v1.0
Resolve word grid with ease
Loading...
Searching...
No Matches
neural_utils.c File Reference
#include "neural_utils.h"
#include "../Application/ApplicationUtils.h"
#include "../Image/ImageUtils.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <err.h>
#include <dirent.h>
#include <time.h>
Include dependency graph for neural_utils.c:

Macros

#define _DEFAULT_SOURCE
 
#define _GNU_SOURCE
 

Functions

double sigmoid (double x)
 
double sigmoid_derivate (double x)
 
double double_rand (double size)
 
double clamp (double value, double min, double max)
 
char * get_formated_time (size_t time)
 
void init_neuron (neuron *n, size_t nb_connection)
 
void free_neuron (neuron *n)
 
void init_neural_network (neural_network *network)
 
void free_neural_network (neural_network *network)
 
void reset_neural_network (neural_network *network)
 
void save_neural_network (neural_network *network, const char *file_path)
 
char ** string_split (const char *string, char separator, size_t *res_len)
 
void load_neural_network (neural_network *network, const char *content)
 
char * read_file (const char *file)
 
void process_hidden_layer (neural_network *network)
 
void process_output_layer (neural_network *network)
 
void process_network (neural_network *network)
 
double get_network_cost (neural_network *network, training_data expected_data)
 
void shuffle_dataset (training_data *datas, size_t data_len, size_t nb_shuffle)
 
double calculate_hidden_local_gradiant (neural_network *network, size_t x, size_t y)
 
void network_hidden_calculate_propagation (neural_network *network, neural_network *memory_network)
 
void network_output_calculate_propagation (neural_network *network, neural_network *memory_network, training_data data)
 
void network_hidden_apply_propagation (neural_network *network, neural_network *memory_network, size_t batch_size, double learning_rate)
 
void network_output_apply_propagation (neural_network *network, neural_network *memory_network, size_t batch_size, double learning_rate)
 
void network_back_propagation (neural_network *network, neural_network *memory_network, training_data *datas, size_t data_len, double learning_rate)
 
void network_set_input_data (neural_network *network, training_data data)
 
void network_train_data (neural_network *network, neural_network *memory_network, training_data *datas, size_t data_len, double learning_rate, double *cost)
 
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)
 
double get_network_total_cost (neural_network *network, training_data *datas, size_t data_len)
 
char get_data_char_prediction (training_data data, size_t nb_output)
 
char get_network_char_prediction (neural_network *network, size_t AdaFactor)
 
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)
 
size_t get_network_success_rate (neural_network *network, training_data *datas, size_t data_len, size_t AdaFactor)
 
training_dataload_dataset (const char *directory, size_t AdaFactor, size_t *nb_data)
 
void print_network_activations (neural_network *network)
 
void print_network_state (neural_network *network)
 
void print_training_debug (neural_network *network, training_data *data, size_t data_len)
 

Macro Definition Documentation

◆ _DEFAULT_SOURCE

#define _DEFAULT_SOURCE

◆ _GNU_SOURCE

#define _GNU_SOURCE

Function Documentation

◆ calculate_hidden_local_gradiant()

double calculate_hidden_local_gradiant ( neural_network * network,
size_t x,
size_t y )

◆ clamp()

double clamp ( double value,
double min,
double max )

◆ double_rand()

double double_rand ( double size)

◆ free_neural_network()

void free_neural_network ( neural_network * network)

◆ free_neuron()

void free_neuron ( neuron * n)

◆ get_data_char_prediction()

char get_data_char_prediction ( training_data data,
size_t nb_output )

◆ get_formated_time()

char * get_formated_time ( size_t time)

◆ get_network_char_prediction()

char get_network_char_prediction ( neural_network * network,
size_t AdaFactor )

◆ get_network_cost()

double get_network_cost ( neural_network * network,
training_data expected_data )

◆ get_network_success_rate()

size_t get_network_success_rate ( neural_network * network,
training_data * datas,
size_t data_len,
size_t AdaFactor )

◆ get_network_total_cost()

double get_network_total_cost ( neural_network * network,
training_data * datas,
size_t data_len )

◆ init_neural_network()

void init_neural_network ( neural_network * network)

◆ init_neuron()

void init_neuron ( neuron * n,
size_t nb_connection )

◆ load_dataset()

training_data * load_dataset ( const char * directory,
size_t AdaFactor,
size_t * nb_data )

◆ load_neural_network()

void load_neural_network ( neural_network * network,
const char * content )

◆ network_back_propagation()

void network_back_propagation ( neural_network * network,
neural_network * memory_network,
training_data * datas,
size_t data_len,
double learning_rate )

◆ network_hidden_apply_propagation()

void network_hidden_apply_propagation ( neural_network * network,
neural_network * memory_network,
size_t batch_size,
double learning_rate )

◆ network_hidden_calculate_propagation()

void network_hidden_calculate_propagation ( neural_network * network,
neural_network * memory_network )

◆ network_output_apply_propagation()

void network_output_apply_propagation ( neural_network * network,
neural_network * memory_network,
size_t batch_size,
double learning_rate )

◆ network_output_calculate_propagation()

void network_output_calculate_propagation ( neural_network * network,
neural_network * memory_network,
training_data data )

◆ network_process_epoche()

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 )

◆ network_set_input_data()

void network_set_input_data ( neural_network * network,
training_data data )

◆ network_train_data()

void network_train_data ( neural_network * network,
neural_network * memory_network,
training_data * datas,
size_t data_len,
double learning_rate,
double * cost )

◆ print_network_activations()

void print_network_activations ( neural_network * network)

◆ print_network_state()

void print_network_state ( neural_network * network)

◆ print_training_debug()

void print_training_debug ( neural_network * network,
training_data * data,
size_t data_len )

◆ process_hidden_layer()

void process_hidden_layer ( neural_network * network)

◆ process_network()

void process_network ( neural_network * network)

◆ process_output_layer()

void process_output_layer ( neural_network * network)

◆ read_file()

char * read_file ( const char * file)

◆ reset_neural_network()

void reset_neural_network ( neural_network * network)

◆ save_neural_network()

void save_neural_network ( neural_network * network,
const char * file_path )

◆ shuffle_dataset()

void shuffle_dataset ( training_data * datas,
size_t data_len,
size_t nb_shuffle )

◆ sigmoid()

double sigmoid ( double x)

◆ sigmoid_derivate()

double sigmoid_derivate ( double x)

◆ string_split()

char ** string_split ( const char * string,
char separator,
size_t * res_len )

◆ train_network()

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 )