AI-FANN
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
samples/add.pl view on Meta::CPAN
#!/usr/bin/perl
use strict;
use warnings;
use AI::FANN qw(:all);
my $n = 500;
if ($ARGV[0] eq 'train') {
# create an ANN with 2 inputs, a hidden layer with 3 neurons and an
# output layer with 1 neuron:
my $ann = AI::FANN->new_standard(2, 5, 3, 1);
$ann->hidden_activation_function(FANN_SIGMOID_SYMMETRIC);
$ann->output_activation_function(FANN_SIGMOID_SYMMETRIC);
my $train = AI::FANN::TrainData->new_empty($n, 2, 1);
for (0..$n-1) {
my $a = rand(2) - 1;
my $b = rand(2) - 1;
my $c = 0.5 * ($a + $b);
$train->data($_, [$a, $b], [$c]);
}
$ann->train_on_data($train, 25000, 250, 0.00001);
$ann->save("add.ann");
}
elsif ($ARGV[0] eq 'test') {
my $ann = AI::FANN->new_from_file("add.ann");
for (1..10) {
my $a = rand(2) - 1;
my $b = rand(2) - 1;
my $c = 0.5 * ($a + $b);
my $out = $ann->run([$a, $b]);
printf "%f + %f = %f (good: %f, error: %4.1f%%)\n",
$a, $b, $out->[0], $c, 50*abs($out->[0] - $c);
}
}
else {
die "bad action\n"
}
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.507 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )