FANN simple_test - eiichiromomma/CVMLAB GitHub Wiki

(FANN) simple_test

最もシンプルなテストの例

ソース

    #include <stdio.h>
    //fann.hと同じ
    #include "floatfann.h"
    
    int main()
    {
      //fann_typeはfloatfann.hを使うとfloat
      fann_type *calc_out;
      //自前でテスト用入力を準備
      fann_type input[2];
      //ネットワークをファイルから読み込み
      struct fann *ann = fann_create_from_file("xor_float.net");
      
      //テスト用入力
      input[0] = -1;
      input[1] = 1;
      //ネットワークを使った出力(学習はしない)
      calc_out = fann_run(ann, input);
    
      printf("xor test (%f,%f) -> %f\n", input[0], input[1], calc_out[0]);
      //後片付け
      fann_destroy(ann);
      return 0;
    }

実行結果

> ./simple_test
xor test (-1.000000,1.000000) -> 0.936896

まずまずの出力。

fann_print_connections

Layer / Neuron 0123456
L   1 / N    3 EEd....
L   1 / N    4 AAb....
L   1 / N    5 EED....
L   1 / N    6 .......
L   2 / N    7 ...eCEd
L   2 / N    8 .......
  • Layer0:入力層
    • Neuron0:その1
    • Neuron1:その2
    • Neuron2:バイアス
  • Layer1:中間層
    • Neuron3:その1
    • Neuron4:その2
    • Neuron5:その3
    • Neuron6:バイアス
  • Layer2:出力層
    • Neuron7:その1

入力その1(Neuron0),2(Neuron1)と中間その2(Neuron4)のconnectionがAになっていて特に重みが大きい結果になったことが分かる。 当然trainをやりなおせば結果は異なる。

fann_print_parameters

Input layer                          :   2 neurons, 1 bias
  Hidden layer                       :   3 neurons, 1 bias
Output layer                         :   1 neurons
Total neurons and biases             :   8
Total connections                    :  13
Connection rate                      :   1.000
Shortcut connections                 :   0
Training algorithm                   :   FANN_TRAIN_RPROP
Training error function              :   FANN_ERRORFUNC_TANH
Training stop function               :   FANN_STOPFUNC_MSE
Learning rate                        :   0.700
Learning momentum                    :   0.000
Quickprop decay                      :  -0.000100
Quickprop mu                         :   1.750
RPROP increase factor                :   1.200
RPROP decrease factor                :   0.500
RPROP delta min                      :   0.000
RPROP delta max                      :  50.000
Cascade output change fraction       :   0.010000
Cascade candidate change fraction    :   0.010000
Cascade output stagnation epochs     :  12
Cascade candidate stagnation epochs  :  12
Cascade max output epochs            : 150
Cascade max candidate epochs         : 150
Cascade weight multiplier            :   0.400
Cascade candidate limit              :1000.000
Cascade activation functions[0]      :   FANN_SIGMOID
Cascade activation functions[1]      :   FANN_SIGMOID_SYMMETRIC
Cascade activation functions[2]      :   FANN_GAUSSIAN
Cascade activation functions[3]      :   FANN_GAUSSIAN_SYMMETRIC
Cascade activation functions[4]      :   FANN_ELLIOT
Cascade activation functions[5]      :   FANN_ELLIOT_SYMMETRIC
Cascade activation steepnesses[0]    :   0.250
Cascade activation steepnesses[1]    :   0.500
Cascade activation steepnesses[2]    :   0.750
Cascade activation steepnesses[3]    :   1.000
Cascade candidate groups             :   2
Cascade no. of candidates            :  48

関係ない初期値もゾロゾロ出てくるので騙されないように。

⚠️ **GitHub.com Fallback** ⚠️