fann_train_on_file

(PECL fann >= 1.0.0)

fann_train_on_file在从某个文件读取的整个数据集上训练一段时间。

说明

fann_train_on_file ( resource $ann , string $filename , int $max_epochs , int $epochs_between_reports , float $desired_error ) : bool

在从某个文件读取的整个数据集上训练一段时间。

该训练使用 fann_set_training_algorithm() 函数选择的算法和这些训练算法设置的参数。

参数

ann

神经网络 资源

filename

包含训练数据的文件。

max_epochs

训练应该继续的最大周期数。

epochs_between_reports

用户函数之间的周期数。当为0时表示没有用户函数被调用。

desired_error

期望的是 fann_get_MSE()fann_get_bit_fail()的返回值, 取决于 fann_set_train_stop_function() 选择的停止函数。

返回值

成功时返回 true,其它情况下返回 false

参见

User Contributed Notes

geekgirljoy at gmail dot com 01-Nov-2018 05:11
Training File (xor.data):
4 2 1
-1 -1
-1
-1 1
1
1 -1
1
1 1
-1

<?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;
$training_data = dirname(__FILE__) . "/xor.data"// training data file
$ann_save_file = dirname(__FILE__) . "/xor_float.net"// training data file

// Create ANN object using
$ann = fann_create_standard($num_layers, $num_input, $num_neurons_hidden, $num_output);

if (
$ann) {
   
   
// Configure the ANN Activation Function
   
fann_set_activation_function_hidden($ann, FANN_SIGMOID_SYMMETRIC);
   
fann_set_activation_function_output($ann, FANN_SIGMOID_SYMMETRIC);
   
   
// Try to train using fann_train_on_file()
   
if (fann_train_on_file($ann, $training_data, $max_epochs, $epochs_between_reports, $desired_error)){
        echo
'xor trained.' . PHP_EOL);
    }
   
   
// Try to save
   
if (fann_save($ann, $ann_save_file)){
        echo
'xor saved.' . PHP_EOL);
    }
   
   
// Destroy the $ann object
   
fann_destroy($ann);
}
?>