Neural network perceptron library
git-svn-id: svn://kolibrios.org@9733 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
45
programs/bcc32/include/l_nnp.h
Normal file
45
programs/bcc32/include/l_nnp.h
Normal file
@@ -0,0 +1,45 @@
|
||||
#ifndef __L_NNP_H_INCLUDED_
|
||||
#define __L_NNP_H_INCLUDED_
|
||||
//
|
||||
// nnp.obj - neural network perceptron (библиотека с нейросетью)
|
||||
//
|
||||
|
||||
const unsigned long NNP_FF_BIN = 0x6e6962; //формат файла 'bin'
|
||||
const unsigned long NNP_FF_JSON = 0x6e6f736a; //формат файла 'json'
|
||||
|
||||
struct Layer {
|
||||
unsigned long c_size; // число нейронов в текущем слое
|
||||
unsigned long n_size; // число нейронов на следующем слое
|
||||
double* neurons;
|
||||
double* biases;
|
||||
double** weights;
|
||||
};
|
||||
|
||||
struct NeuralNetwork {
|
||||
double learningRate; // скорость обучения
|
||||
Layer* layers; // слои
|
||||
long layers_length; // число слоев
|
||||
double(_stdcall*activation)(double v); // указатель на функцию активации
|
||||
double(_stdcall*derivative)(double v); // указатель на функцию ???
|
||||
double* errors; // массив для вычислений
|
||||
double* errorsNext;
|
||||
double* gradients;
|
||||
double** deltas;
|
||||
};
|
||||
|
||||
//
|
||||
// nnp - import table
|
||||
//
|
||||
void (__stdcall* import_nnp)() = (void (__stdcall*)())&"lib_init";
|
||||
void (_stdcall* NNP_Create)(NeuralNetwork* o, double learningRate, void* activation, void* derivative, unsigned long* sizes, long sizes_length) = (void (_stdcall*)(NeuralNetwork*, double, void*, void*, unsigned long*, long))&"NNP_Create";
|
||||
double* (_stdcall* NNP_FeedForward)(NeuralNetwork* o, double* inputs) = (double* (_stdcall*)(NeuralNetwork*, double*))&"NNP_FeedForward";
|
||||
void (_stdcall* NNP_BackPropagation)(NeuralNetwork* o, double* targets) = (void (_stdcall*)(NeuralNetwork*, double*))&"NNP_BackPropagation";
|
||||
void (_stdcall* NNP_GetMemData)(NeuralNetwork* o, unsigned long fmt, void* m_data) = (void (_stdcall*)(NeuralNetwork*, unsigned long, void*))&"NNP_GetMemData";
|
||||
long (_stdcall* NNP_SetMemData)(NeuralNetwork* o, unsigned long fmt, void* m_data) = (long (_stdcall*)(NeuralNetwork*, unsigned long, void*))&"NNP_SetMemData";
|
||||
void (_stdcall* NNP_Destroy)(NeuralNetwork* o) = (void (_stdcall*)(NeuralNetwork*))&"NNP_Destroy";
|
||||
|
||||
asm{
|
||||
dd 0,0
|
||||
}
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user