#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#define ETA 1//Learning_rate
#define PRECISION 0.00001
typedef struct Neuron
{
double input;
double output;
double* weights;
double Error;
} NEURON;
typedef struct Layer
{
int numberOfNeurons;
NEURON *neurons;
} LAYER;
typedef struct NNet {
int numberOfLayers;
LAYER *layers;
} NNET;
/////////////function
double sigmoid(double v)
{
return 1 / (1 + exp(-v));
}
double randomWeight() //random weight generator between -0.5 ~ 0.5
{
return ((int)rand() % 100000) / (float)100000 - 1;
}
void createNetWorks(NNET *nnet,int NumberOfLayers,int* NumberOfNeurons) {
nnet->numberOfLayers = NumberOfLayers;
nnet->layers =(LAYER*) malloc(NumberOfLayers * sizeof(LAYER));
for (int i = 0; i < NumberOfLayers; i++) {
nnet->layers[i].numberOfNeurons = NumberOfNeurons[i];
nnet->layers[i].neurons = (NEURON*)malloc(NumberOfNeurons[i] * sizeof(NEURON));
}
}
void init(NNET
深度学习BP算法之C语言实现
最新推荐文章于 2025-06-03 10:47:52 发布