<?php namespace MachineLearning; include 'Util/Input.php'; include 'Util/Output.php'; $numLayers = 3; $numInput = Util\Input::NUM_INPUT; $numNeuronsHidden = 9; $numOutput = Util\Output::NUM_OUTPUT; $maxEpochs = 500000; $epochsBetweenReports = 1000; $desiredError = 0.001; $ann = fann_create_standard($numLayers, $numInput, $numNeuronsHidden, $numOutput); if ($ann) { fann_set_activation_function_hidden($ann, FANN_SIGMOID_SYMMETRIC); fann_set_activation_function_output($ann, FANN_SIGMOID_SYMMETRIC); if (fann_train_on_file($ann, 'Data/training', $maxEpochs, $epochsBetweenReports, $desiredError)) { fann_save($ann, 'Data/training_result'); } fann_destroy($ann); }
/** * Create ANN in standard way * @param int number of layers * @param int input layer size * @param int next layer size * @param int next layer size * @param int last layer size * @return void */ public function create_standard($numberOfLayers, $l1num, $l2num, $l3num = 0, $l4num = 0) { $this->annId = fann_create_standard($numberOfLayers, $l1num, $l2num, $l3num, $l4num); if ($this->annId < 0) { die('Could not initialize another ANN network.'); } }
<?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($ann, FANN_SIGMOID_SYMMETRIC); fann_set_activation_function_output($ann, FANN_SIGMOID_SYMMETRIC); $filename = dirname(__FILE__) . "/xor.data"; if (fann_train_on_file($ann, $filename, $max_epochs, $epochs_between_reports, $desired_error)) { fann_save($ann, dirname(__FILE__) . "/xor_float.net"); } fann_destroy($ann); }
/** * Create Standard. * * @return bool */ public function createStandard() { # Create standard fully connected backpropagation neural network. $this->ann = fann_create_standard($this->getLayers(), $this->inputLayer->getNeurons(), $this->hiddenLayer->getNeurons(), $this->outputLayer->getNeurons()); if ($this->ann === false) { return false; } else { return true; } }