Boa tarde, não consigo finalizar este codigo em C, me enrolei na parte que deve ler os dados da imput e da hw1 e multiplicalos, depois somar com 1 dos valores de z e armazenar nele mesmo. Não saio dessa parte a um tempo. Resumidamente, tenho que projetar um processador que implemente o processamento de uma camada de uma rede neural.
#include <stdio.h>
#define INPUT_SIZE 5
#define HIDDEN1_SIZE 4
int main() {
// Armazenar na memória input
char input[] = {1,2,3,2,1};
// Cada linha da matriz é tratada como um array.
// As linhas são armazenas de maneira contígua na memória weights.
char hw1[HIDDEN1_SIZE][INPUT_SIZE] = {
{2,2,2,2,2},
{-1,-1,-1,1,1},
{2,-2,2,2,-2},
{-1,-1,-1,1,1}
};
char z[] = {0, 0, 0, 0}; // Implementar como 4 registradores
char i, j;
// Hidden Layer 1
for (j = 0; j < HIDDEN1_SIZE; j++)
for (i = 0; i < INPUT_SIZE; i++)
z[j] = z[j] + input[i] * hw1[j][i];
printf("Hidden Layer 1\n");
for (i = 0; i < HIDDEN1_SIZE; i++)
printf("\tz[%d]: %d (0x%X)\n", i, z[i], z[i] & 0xFF);
printf("\n");
}