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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2011, 16:42   #1
ksv1991
 
Регистрация: 10.08.2011
Сообщений: 3
По умолчанию Ошибка Invalid floating point operation

В общем, работаю с компонентами Neuralbase. Прошу помощи у тех, кто имел с ними дело.
Код:
Код:
procedure TForm2.Button2Click(Sender: TObject);
var
  v, i, j: Integer;
begin
  v := SpinEdit1.Value;
  NeuralNetExtended1.AvailableFieldsCount := Length(a) + 1;
  for i := 0 to Length(a) - 1 do
  begin
    NeuralNetExtended1.Fields[i].DataInCount := Length(a[0]);
    NeuralNetExtended1.Fields[Length(a)].DataInCount := Length(a[0]);
    NeuralNetExtended1.Fields[i].Kind := 0;
    for j := 0 to Length(a[0]) - 1 do
    begin
      NeuralNetExtended1.Fields[i].DataIn[j] := a[i, j];
    end;
  end;
  j := 0;
  for j := 0 to Length(a[0]) - 1 do
  begin
    NeuralNetExtended1.Fields[Length(a)].DataIn[j] := 1;
  end;
  NeuralNetExtended1.Fields[Length(a)].Kind := 1;
  NeuralNetExtended1.ResetLayers;
  NeuralNetExtended1.AddLayer(NeuralNetExtended1.InputFieldCount);
  NeuralNetExtended1.AddLayer(10);
  NeuralNetExtended1.AddLayer(NeuralNetExtended1.OutPutFieldCount);
  NeuralNetExtended1.Init;
  Memo1.Lines := NeuralNetExtended1.NeuronsInLayer;
  NeuralNetExtended1.Train;
end;
При выполнении выскакивает ошибка First chance exception at $766EB727 'Invalid floating point operation'.
При удалении строки " NeuralNetExtended1.Train;" ошибка не возникает.
Включение в опциях компилятора debug dcu открывает модуль PumpData библиотеки Neuralbase и указывает в нем на эту процедуру:
Код:
procedure TNeuroField.Normalize;
var
  i: integer;
  xTmp: double;
begin
  case NormTypeName of
    nrmAuto:  begin
                CalcMid;
                CalcDispersion;
                for i := Low(FDataIn) to High(FDataIn) do
                begin
                  xTmp := (FDataIn[i] - FValueMid)/FDispersion;
                  FDataIn[i] := 1/(1 + exp(-xTmp));
                end;
              end;  
    nrmLinear: for i := Low(FDataIn) to High(FDataIn) do
               FDataIn[i] := 2*(FDataIn[i] - FValueMin)/(FValueMax - FValueMin)-1;
    nrmLinearOut: for i := Low(FDataIn) to High(FDataIn) do
               FDataIn[i] := (FDataIn[i] - FValueMin)/(FValueMax - FValueMin);
    nrmSigmoid: for i := Low(FDataIn) to High(FDataIn) do
               FDataIn[i] := 1/( 1 + exp(-Alpha * FDataIn[i]));
  end;
end;
Массив a заполнен данными формата Byte. Все ячейки массива заполнены.

Последний раз редактировалось ksv1991; 10.08.2011 в 16:53.
ksv1991 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Invalid floating point operation ужасная ошибка ВСЁПРОСТО Помощь студентам 3 24.08.2010 15:32
invalid floating point operation Mikhail91 Общие вопросы C/C++ 5 24.03.2010 00:05
Ошибка: invalid floating point operation Willow Помощь студентам 3 24.01.2010 18:42
Вылезает ошибка with massage 'Invalid floating point operation' подскажите как устранить. Herly Помощь студентам 2 09.01.2010 18:56
Возникает ошибка Invalid floating point operation Иринкаа Помощь студентам 3 29.11.2007 22:10