以下是关于训练输入文件的解释,它可能对每个人来说都很明显,但你必须理解它才能编写你自己的文件。
4 2 1 <- 头文件,表示有4组数据要读取,每组有2个输入和1个输出。
-1 -1 <- 第1组的2个输入
-1 <- 第1组的1个输出
-1 1 <- 第2组的2个输入
1 <- 第2组的1个输出
1 -1 <- 第3组的2个输入
1 <- 第3组的1个输出
1 1 <- 第4组的2个输入
-1 <- 第4组的1个输出
此示例演示如何训练异或函数的数据。
示例 #1 xor.data 文件
4 2 1 -1 -1 -1 -1 1 1 1 -1 1 1 1 -1
示例 #2 简单训练
<?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);
}
?>
此示例演示如何读取和运行异或函数的数据。
示例 #3 简单测试
<?php
$train_file = (dirname(__FILE__) . "/xor_float.net");
if (!is_file($train_file))
die("文件 xor_float.net 未创建!请运行 simple_train.php 生成它");
$ann = fann_create_from_file($train_file);
if (!$ann)
die("无法创建ANN");
$input = array(-1, 1);
$calc_out = fann_run($ann, $input);
printf("异或测试 (%f,%f) -> %f\n", $input[0], $input[1], $calc_out[0]);
fann_destroy($ann);
?>
以下是关于训练输入文件的解释,它可能对每个人来说都很明显,但你必须理解它才能编写你自己的文件。
4 2 1 <- 头文件,表示有4组数据要读取,每组有2个输入和1个输出。
-1 -1 <- 第1组的2个输入
-1 <- 第1组的1个输出
-1 1 <- 第2组的2个输入
1 <- 第2组的1个输出
1 -1 <- 第3组的2个输入
1 <- 第3组的1个输出
1 1 <- 第4组的2个输入
-1 <- 第4组的1个输出
这里有一个关于FANN的有用参考
http://leenissen.dk/fann/html/files2/theory-txt.html