Home > Doc > Reti Neurali su .... >Analisi del codice C generato

Reti neurali su Personal Computer e Fuzzy Logic: Neurfuzz 1.0

Analisi del codice C generato

I listati 2 e 3 sono i files prova.c e prova.h generati da Neuronx, dopo un addestramento sul problema "giocattolo" del riconoscimento di profili altimetrici con cinque inputs.

Il listato 2 contiene le procedure di esecuzione della rete e quelle di input /output e normalizzazione. Le procedure di fuzzyficazione e defuzzyficazione contengono solo un return perché questa rete non ha interfacce fuzzy(defuzzy_in_flag=0 e fuzzy_out_flag=0 nei dati pubblici). Le procedure di normalizzazione e di denormalizzazione contengono il codice relativo perchè sono attivate dai flag normaliz_flag=1 e denormaliz_flag=1(dalla scala reale della variabile alla scala 0.0 - 1.0 e viceversa).

Il listato 3 è il file prova.h (include in prova.c) che contiene le matrici w1,w2,w3 di valori float corrispondenti ai pesi sinaptici che connettono lo strato input con lo strato hidden1 di neuroni, lo strato hidden1 con lo strato hidden2 e lo strato hidden2 con lo strato di output. Questi valori corrispondono ai valori ottenuti dopo un addestramento con algoritmo a retropropagazione dell’ errore sul problema dei profili altimetrici. Tale addestramento è stato effettuato in regime termico dinamico, come dimostra la dichiarazione "float t=0.513044" nei dati pubblici: tale valore sarebbe uguale a 1 in caso contrario. Questo valore di temperatura è quello associato al momento in cui è stato fermato il processo di addestramento.

Nel caso in cui vengano scelte caratteristiche differenti nel pretrattamento dei dati (come la normalizzazione quadratica)o l'interfacciamento con dati sfumati, il codice c avrà differenti valori nei flags definiti nei dati pubblici e saranno presenti le funzioni relative complete.

Luca Marchese

Successivo: Guida al software allegato

Sommario: Indice