Skip to content

Instantly share code, notes, and snippets.

@pxpc2
Created June 27, 2019 00:46
Show Gist options
  • Select an option

  • Save pxpc2/8d57330f265ed9b440d636e78f829aa9 to your computer and use it in GitHub Desktop.

Select an option

Save pxpc2/8d57330f265ed9b440d636e78f829aa9 to your computer and use it in GitHub Desktop.
typedef struct neuronio
{
double* p; // conjunto de entradas deste neuronio
double* w; // conjunto de pesos deste neuronio
double b; // bias deste neuronio
double s; // saida deste neuronio
int p_length; // quantidade de entradas
} Neuronio;
typedef struct camada
{
Neuronio** neuronios; // conjunto de ponteiros dos neuronios dessa camada
int qt_neuronios; // quantidade de neuronios presente na camada
int qt_entradas; // quantidade de entradas por neuronio da camada
} Camada;
typedef struct rede
{
Camada* entrada; // primeira camada da rede, com 536 neuronios
Camada* oculta; // camada oculta, quantidade de neuronios definida runtime
Camada* saida; // ultima camada, com somente 1 neuronio
} Rede;
// inicializa a rede e suas camadas
void initRede(int);
// inicializa cada neuronio de uma camada (gerando os pesos e bias aleatorios)
void initNeuronios(Camada*,int);
// gera pesos aleatorios
double* gerarPesos(int);
// gera um bias aleatorio
double gerarBias();
// pega o somatorio do produto pesos por entradas, somando com o bias
double getSomatorio(Neuronio*);
// pega a saída de um neuronio usando a funcao logistica sigmoid
double funcaoLogistica(double);
// faz o processo de feedforward chamando a funcao feed
double feedForward(double*);
// realiza o processo de atribuir entradas ao neuronio e calcular sua saída
double* feed(Camada*,double*);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment