Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2011, 18:46   #11
stiv73
Пользователь
 
Регистрация: 17.06.2009
Сообщений: 26
По умолчанию

Остановился на том, как и посоветовали, закинул файлы fann.dcr, FANN.pas, FannNetwork.pas в папку lib. Но почему то их примеры из папки Samples не работаю, хотя в delphi 7, где FANN установлен как компонент, все успешно работает.
Примет XorConsole вылетает без ошибок на строке
Код:
fann_init_weights(ann, train_data);
, в 7ке он успешно работает дальше. (dllки FANN я закинул в папку windows)
JTG, ваша программа успешно работает, у вас какая версия delphi стоит?

Последний раз редактировалось stiv73; 03.04.2011 в 18:50.
stiv73 вне форума Ответить с цитированием
Старый 03.04.2011, 21:31   #12
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

как сделать пакет (package) ...обсуждалось.
Цитата:
закинул файлы fann.dcr, FANN.pas, FannNetwork.pas в папку lib. Но почему то их примеры из папки Samples не работаю
потому-что подумать немножко нужно, просто динамически создать - это еще не все, настройки-то в dfm лежат:
Код:
object NN: TFannNetwork
    Layers.Strings = (
      '2'
      '3'
      '1')
    LearningRate = 0.699999988079071100
    ConnectionRate = 1.000000000000000000
    TrainingAlgorithm = taFANN_TRAIN_RPROP
    ActivationFunctionHidden = afFANN_SIGMOID
    ActivationFunctionOutput = afFANN_SIGMOID
    Left = 192
    Top = 40
  end
end
вот их и надо ввести после создания:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  NN:= TFannNetwork.Create(self);
  nn.Layers.Add('2');
  nn.Layers.Add('3');
  nn.Layers.Add('1');
  nn.LearningRate:= 0.699999988079071100;
  nn.ConnectionRate:= 1.000000000000000000;
  nn.TrainingAlgorithm:= taFANN_TRAIN_RPROP;
  nn.ActivationFunctionHidden:= afFANN_SIGMOID;
  nn.ActivationFunctionOutput:= afFANN_SIGMOID
end;
Вложения
Тип файла: zip XorTFannNetwork.zip (428.3 Кб, 56 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 03.04.2011, 22:08   #13
stiv73
Пользователь
 
Регистрация: 17.06.2009
Сообщений: 26
По умолчанию

Raxp, вы верно заметили, что в примере XorTFannNetwork нужно создать NN , потому что когда FANN, как компонент, то она создается автоматически, при переносе из палитры компонентов, и настраивается через Object Inspector. Когда же его в палитре нет, то надо создавать и настраивать в ручную, поэтому я и не упомянул об нем.

В примере XorConsole , насколько я понял, все создается и настраивается в коде. Но в 7ке после строки
Код:
fann_init_weights(ann, train_data);
программа продолжает выполнение, а в 10ке вылетает.
Если сделать breakpoint на этой строке, а затем trace into то видим
Код:
procedure fann_init_weights; external DLL_FILE;
.
Код примера XorConsole
Код:
program XorConsole;

{$APPTYPE CONSOLE}

uses
  SysUtils,fann;

var ann: PFann;
    inputs: array [0..1] of fann_type;
    calc_out: PFann_Type_array;
    i,j: integer;
    train_data: PFann_Train_Data;
begin
        ann:=fann_create_standard(3,2,3,1);

        train_data:=fann_read_train_from_file('xor.data');


        fann_set_activation_steepness_hidden(ann, 0.5);
        fann_set_activation_steepness_output(ann, 0.5);

	      fann_set_activation_function_hidden(ann, FANN_SIGMOID);
	      fann_set_activation_function_output(ann, FANN_SIGMOID);

	      fann_set_train_stop_function(ann, FANN_STOPFUNC_BIT);
	      fann_set_bit_fail_limit(ann, 0.001);

	      fann_init_weights(ann, train_data);

        fann_train_on_data(ann, train_data, 500000,
                1000, 0.001);

        for i:=0 to 1 do
          for j:=0 to 1 do
          begin
                     inputs[0]:=i;
                     inputs[1]:=j;

                     calc_out:= fann_run(ann, @inputs[0]);
                     writeln(Format('%f Xor %f = %f',[inputs[0],inputs[1],Calc_Out[0]]));

          end;

        readln;

        fann_destroy(ann);

end.

Последний раз редактировалось stiv73; 03.04.2011 в 22:21.
stiv73 вне форума Ответить с цитированием
Старый 03.04.2011, 22:14   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а какого типа ann и train_data?
если из них чтото структура то выложите и определение структуры.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
GlScene и Embarcadero Rad Studio 2010 (Delphi 2010) Fiery Fox Мультимедиа в Delphi 4 19.11.2010 21:46
Fast Artificial Neural Network Library - PHP Extension - Оконница yarilo PHP 0 15.07.2010 18:06
Delphi 7 и Fast Report многостраничный отчет tarakan1983 БД в Delphi 3 09.04.2010 14:58
Network is unreachable Winamp Работа с сетью в Delphi 1 08.01.2010 21:34
Позвольте представить - Delphi Widget Library BOBAH13 Компоненты Delphi 13 06.01.2010 12:01