Пример #1
0
 public function __construct($inputNeurons, $outputNeurons, $hiddenLayers, $hiddenNeurons, $file = '')
 {
     $this->file = $file;
     if (!empty($this->file) && is_readable($this->file)) {
         $this->ann = fann_create_from_file($this->file);
     }
     if (!$this->ann) {
         /**
          * layers
          * layer 1 (input layer)
          * layer 2 (hidden layer 1)
          * .
          * .
          * layer 5 (output layer)
          */
         $layers = $this->createLayersArray($inputNeurons, $outputNeurons, $hiddenLayers, $hiddenNeurons);
         $this->ann = fann_create_standard_array(count($layers), $layers);
     }
     fann_set_activation_function_hidden($this->ann, FANN_SIGMOID_SYMMETRIC);
     fann_set_activation_function_output($this->ann, FANN_SIGMOID);
     fann_set_training_algorithm($this->ann, FANN_TRAIN_BATCH);
 }
Пример #2
0
 /**
  * Sets activation function for hidden layer
  * @param int activation function (SEE TOP OF THIS FILE)
  * @return bool true on success, false on error
  */
 public function set_activation_function_hidden($activation_function)
 {
     $this->checkIfAnnIsAssigned();
     return fann_set_activation_function_hidden($this->annId, $activation_function);
 }
Пример #3
0
<?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);
}
Пример #4
0
 /**
  * Set Activation Function.
  * 
  * @param  int  $layer Layer.
  * @return bool
  */
 public function setActivationFunction(LayerInterface $layer)
 {
     if ($this->ann === null) {
         throw new Exception("ANN is null: create an artifical neural network before setting an activation function for a layer.", 1);
     }
     $result = fann_set_activation_function_hidden($this->ann, $layer::ACTIVATION_FUNCTION);
     return $result;
 }