Dopo un bel po' di giorni di lavoro, annuncio il release della prima versione (0.1) di NeuralPerl, un modulo Perl per la gestione delle reti neurali, completamente compatibile con la mia libreria Neural++ in C++, con cui ho cercato di mantenere gli stessi nomi dei metodi, lo stesso approccio (assolutamente intuitivo e semplice per il programmatore) e la stessa sintassi per i file XML di input e di output (training set e informazioni della rete una volta salvata).
Un esempio di uso (crea una rete in grado di "imparare" a fare la somma di due numeri, dicendogli semplicemente che 2+3=5, 3+4=7, 5+4=9, e salva le informazioni di questa rete su un file XML):
quindi, per usare le informazioni appena salvate della rete per creare uno script che sfrutti la rete stessa per sommare due numeri:
Per maggiore documentazione, c'è la directory examples/ nel pacchetto con tutti gli esempi ben commentati, o dopo l'installazione si può dare un `man NeuralPerl` per esaminare la pagina di manuale.
Per l'installazione:
$ perl Makefile.PL
$ make
% make install
Link:
http://0x00.ath.cx/prog/neuralperl/
Link per il clone dal repository GIT (consigliato):
git clone git://github.com/BlackLight/NeuralPerl.git
Un esempio di uso (crea una rete in grado di "imparare" a fare la somma di due numeri, dicendogli semplicemente che 2+3=5, 3+4=7, 5+4=9, e salva le informazioni di questa rete su un file XML):
Codice:
#!/usr/bin/perl
use strict;
use warnings;
use NeuralNet;
my $net = new NeuralNet(
input_size => 2,
hidden_size => 2,
output_size => 1,
learning_rate => 0.002,
epochs => 1000
) or die "Error: $!\n";
print "I'm training the network now, this may take a while\n";
my $xml = $net->setToXML(
'2,3;5',
'3,4;7',
'5,4;9'
);
$net->train(
xml => $xml
);
$net->save('netadd.xml');
print "Network saved to netadd.xml\n";
quindi, per usare le informazioni appena salvate della rete per creare uno script che sfrutti la rete stessa per sommare due numeri:
Codice:
#!/usr/bin/perl
use strict;
use warnings;
use NeuralNet;
my $net = new NeuralNet(
file => 'netadd.xml'
);
print "Insert a number: ";
my $a = <STDIN>;
print "Insert another number, sir: ";
my $b = <STDIN>;
$net->setInput($a,$b);
$net->propagate;
print "Ok, more or less the result is ".$net->output."\n";
Per maggiore documentazione, c'è la directory examples/ nel pacchetto con tutti gli esempi ben commentati, o dopo l'installazione si può dare un `man NeuralPerl` per esaminare la pagina di manuale.
Per l'installazione:
$ perl Makefile.PL
$ make
% make install
Link:
http://0x00.ath.cx/prog/neuralperl/
Link per il clone dal repository GIT (consigliato):
git clone git://github.com/BlackLight/NeuralPerl.git