AI-ML

 view release on metacpan or  search on metacpan

t/08-gradient-checking.t_  view on Meta::CPAN

#!perl

use Test2::V0 qw'is float done_testing';
use Math::Lapack::Matrix;
use AI::ML::NeuralNetwork;
use Math::Lapack;
use Data::Dumper;


Math::Lapack->seed_rng(0);

#my $x = Math::Lapack::Matrix::read_csv("t/logistic.csv", col_range =>[0,2]);
#my $y = Math::Lapack::Matrix::read_csv("t/logistic.csv", col => 3);


my $x = Math::Lapack::Matrix::read_csv("t/x_grad_check.csv");
my $y = Math::Lapack::Matrix::read_csv("t/y_grad_check.csv");

my $params = {};
$params{"w1"} = Math::Lapack::Matrix::read_csv("t/W1_grad_check.csv");
$params{"w2"} = Math::Lapack::Matrix::read_csv("t/W2_grad_check.csv");
$params{"w3"} = Math::Lapack::Matrix::read_csv("t/W3_grad_check.csv");
$params{"b1"} = Math::Lapack::Matrix::read_csv("t/b1_grad_check.csv");
$params{"b2"} = Math::Lapack::Matrix::read_csv("t/b2_grad_check.csv");
$params{"b3"} = Math::Lapack::Matrix::read_csv("t/b3_grad_check.csv");

gradient_checking($x, $y, $params, 1);


#$x->norm_std_deviation();
#print STDERR $x->columns."\n";

#my $NN = AI::ML::NeuralNetwork->new(
#				[
#								2,
#								{func => "tanh", units => 3}, 
#								1
#				],
#                n => 2,
#                alpha => 1.2
#
#);
##$NN->{"l1"}{w} = Math::Lapack::Matrix::read_csv("t/w1.csv");
##$NN->{"l2"}{w} = Math::Lapack::Matrix::read_csv("t/w2.csv");
#
#$NN->train($x, $y);
#
#$NN->prediction($x);
#
#my $acc = $NN->accuracy($y);
#my $prec = $NN->precision($y);
#my $rec = $NN->recall($y);
#my $f1 = $NN->f1($y);
#
#print STDERR "Accuracy: $acc\n";
#print STDERR "Precison: $prec\n";
#print STDERR "Recall: $rec\n";
#print STDERR "F1: $f1\n";

#my $t1 = $NN->{"l1"}{w};
#$t1->save_matlab("/tmp/t0.m");
#print STDERR Dumper($NN->{"l1"}{w});



( run in 1.127 second using v1.01-cache-2.11-cpan-39bf76dae61 )