Форум сайта python.su
Пытаюсь научиться пользоваться данной библиотекой. Попробовал пример на сайте (xor), попробовал переписать на языке python. Почему-то вывод двух программ различается, хотя файл настроек сети (xor_float.net) используется один и тот же.
Код на С
#include <stdio.h>
#include "floatfann.h"
int main()
{
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]);
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]);
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]);
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;
}
xor test (-1.000000,1.000000) -> 0.999761
xor test (1.000000,-1.000000) -> 0.999784
xor test (-1.000000,-1.000000) -> -0.999978
xor test (1.000000,1.000000) -> -0.999823
from pyfann import fann
ann = fann.create_from_file('xor_float.net')
print '%f' % ann.run((-1,1))[0]
print '%f' % ann.run((1,-1))[0]
print '%f' % ann.run((-1,-1))[0]
print '%f' % ann.run((1,1))[0]
8783949685095173301117427223208394752.000000
0.000000
0.000000
8784890281840542647333337776986783744.000000
Офлайн
возможно числа должны быть типа
from pyfann import fann
ann = fann.create_from_file('xor_float.net')
print '%f' % ann.run((-1.0,1.0))[0.0]
print '%f' % ann.run((1.0,-1.0))[0.0]
print '%f' % ann.run((-1.0,-1.0))[0.0]
print '%f' % ann.run((1.0,1.0))[0.0]
Офлайн
Числа в конце - это индексы list. Должны быть integers
Офлайн
http://python.su/forum/viewtopic.php?id=6618 пробовал ? версия у тебя какая ? от куда качал ?
Отредактировано (Дек. 30, 2010 20:30:46)
Офлайн
Качал с официального сайта. Собирал из исходников, что сам libfann что привязки для Python. Версия 2.0.0
Вот еще файл xor_float.net - конфигурация сети. Может кто у себя попробует?
FANN_FLO_2.0
num_layers=3
learning_rate=0.700000
connection_rate=1.000000
shortcut_connections=0
learning_momentum=0.000000
training_algorithm=2
train_error_function=1
train_stop_function=0
cascade_output_change_fraction=0.010000
quickprop_decay=-0.000100
quickprop_mu=1.750000
rprop_increase_factor=1.200000
rprop_decrease_factor=0.500000
rprop_delta_min=0.000000
rprop_delta_max=50.000000
rprop_delta_zero=0.500000
cascade_output_stagnation_epochs=12
cascade_candidate_change_fraction=0.010000
cascade_candidate_stagnation_epochs=12
cascade_max_out_epochs=150
cascade_max_cand_epochs=150
cascade_num_candidate_groups=2
bit_fail_limit=3.49999999999999977796e-01
cascade_candidate_limit=1.00000000000000000000e+03
cascade_weight_multiplier=4.00000000000000022204e-01
cascade_activation_functions_count=6
cascade_activation_functions=3 5 7 8 10 11
cascade_activation_steepnesses_count=4
cascade_activation_steepnesses=2.50000000000000000000e-01 5.00000000000000000000e-01 7.50000000000000000000e-01 1.00000000000000000000e+00
layer_sizes=3 4 2
neurons (num_inputs, activation_function, activation_steepness)=(0, 0, 0.00000000000000000000e+00) (0, 0, 0.00000000000000000000e+00) (0, 0, 0.00000000000000000000e+00) (3, 5, 5.00000000000000000000e-01) (3, 5, 5.00000000000000000000e-01) (3, 5, 5.00000000000000000000e-01) (0, 5, 0.00000000000000000000e+00) (4, 5, 5.00000000000000000000e-01) (0, 5, 0.00000000000000000000e+00)
connections (connected_to_neuron, weight)=(0, 3.78450007694570622618e+00) (1, -4.50085624471661116530e+00) (2, -3.70862648326583599356e+00) (0, -1.49973878180165276497e+00) (1, -1.30934881521165102924e+00) (2, -3.26327268973751305481e+00) (0, -5.05513016915118296168e+00) (1, 4.18357343784942248277e+00) (2, -3.78447107939386162556e+00) (3, 9.66826916769764643789e+00) (4, -4.65570574545145632328e+00) (5, 9.62284114127319512022e+00) (6, 4.91457103864043087782e+00)
Офлайн
http://permalink.gmane.org/gmane.comp.lib.fann.general/582
Похоже проблема в самой библиотеке, в привязках к питону.
Офлайн