PHP 7.0.6 Released

XOR training

This example shows how to train data for XOR function

Example #1 xor.data file

4 2 1
-1 -1
-1
-1 1
1
1 -1
1
1 1
-1

Example #2 Simple train

<?php
$num_input 
2;
$num_output 1;
$num_layers 3;
$num_neurons_hidden 3;
$desired_error 0.001;
$max_epochs 500000;
$epochs_between_reports 1000;

$ann fann_create_standard($num_layers$num_input$num_neurons_hidden$num_output);

if (
$ann) {
    
fann_set_activation_function_hidden($annFANN_SIGMOID_SYMMETRIC);
    
fann_set_activation_function_output($annFANN_SIGMOID_SYMMETRIC);

    
$filename dirname(__FILE__) . "/xor.data";
    if (
fann_train_on_file($ann$filename$max_epochs$epochs_between_reports$desired_error))
        
fann_save($anndirname(__FILE__) . "/xor_float.net");

    
fann_destroy($ann);
}
?>

This example shows how to read and run data for XOR function

Example #3 Simple test

<?php
$train_file 
= (dirname(__FILE__) . "/xor_float.net");
if (!
is_file($train_file))
    die(
"The file xor_float.net has not been created! Please run simple_train.php to generate it");

$ann fann_create_from_file($train_file);
if (!
$ann)
    die(
"ANN could not be created");

$input = array(-11);
$calc_out fann_run($ann$input);
printf("xor test (%f,%f) -> %f\n"$input[0], $input[1], $calc_out[0]);
fann_destroy($ann);
?>

User Contributed Notes

Aurelien Marchand
11 months ago
Here is an explanation for the input file for training, as it might be obvious to everyone and you must understand it to write your own:

4 2 1 <- header file saying there are 4 sets to read, with 2 inputs and 1 output
-1 -1 <- the 2 inputs for the 1st group
-1    <- the 1 output for the 1st group
-1 1  <- the 2 inputs for the 2nd group
1     <- the 1 output for the 2nd group
1 -1  <- the 2 inputs for the 3rd group
1     <- the 1 output for the 3rd group
1 1   <- the 2 inputs for the 4th group
-1    <- the 1 output for the 4th group
To Top