<?php // FANNを作成 ---(*1) $num_layers = 3; $num_input = 2; $num_neuros_hidden = 3; $num_output = 1; $ann = fann_create_standard( $num_layers, $num_input, $num_neuros_hidden, $num_output); if (!$ann){ die("FANNの初期化に失敗"); } // パラメーターを設定 ---(*2) fann_set_activation_function_hidden($ann, FANN_SIGMOID_SYMMETRIC); fann_set_activation_function_output($ann, FANN_SIGMOID_SYMMETRIC); // 学習する ---(*3) // xor のデータファイルを読み込む $desired_error = 0.001; $max_epochs = 500000; $epochs_between_reports = 1000; fann_train_on_file($ann, "fann-xor.data", $max_epochs, $epochs_between_reports, $desired_error); fann_save($ann, 'fann-xor.net'); // 学習したデータをテスト echo "学習結果をテスト:\n"; $xor_pattern = [[1,1],[1,0],[0,1],[0,0]]; foreach ($xor_pattern as $t){ $r = fann_run ($ann, $t); $v = round($r[0]); printf("%d %d => %d (%f)\n", $t[0], $t[1], $v, $r[0]); } fann_destroy($ann);