Генерация Си кода из нейросетей
Автор
#include <stdio.h>
#include <math.h>
void neural_net(float* LHS, const float* RHS) {
LHS[0] = tanh(0.002f + 0.02f * RHS[0] + 0.05f * RHS[1]);
LHS[1] = tanh(0.003f + 0.03f * RHS[0] + 0.06f * RHS[1]);
LHS[2] = tanh(0.004f + 0.04f * RHS[0] + 0.07f * RHS[1]);
LHS[3] = tanh(0.002f + 0.02f * RHS[0] + 0.05f * RHS[1]);
LHS[4] = tanh(0.003f + 0.03f * RHS[0] + 0.06f * RHS[1]);
LHS[5] = tanh(0.004f + 0.04f * RHS[0] + 0.07f * RHS[1]);
}
int main(int argc, char const *argv[]){
float out[3];
float in[] = {10, 10, 10, 10, 10};
for( int i=0; i<5; i++ ){
neural_net( out, in );
printf( "%f %f %f\n", out[0], out[1], out[2] );
/* Подставим выходное значения в входной вектор в качестве вектора состояния */
in[2] = out[0];
in[3] = out[1];
in[4] = out[2];
}
return 0;
}