Вход
Регистрация

Neural Base для Delphi7 и 6

Найдена ошибка в коде NeuralBaseComp ... Компонент сам по себе вобще отличный, спасибо вам, мною обнаружена маленькая ошибка, которая в некоторых случаях сохраняет нейросеть неправильно :) ...
Нужно всего то исправить процедуру:

procedure TNeuralNetExtended.SaveNetwork;
var
i, j, k: integer;
begin
//showmessage('1');
// используется справочно, т.к. не происходит обучения
FNnwFile.WriteFloat('Network', 'TeachSpeed', TeachRate);
// используется справочно, т.к. не происходит обучения
FNnwFile.WriteFloat('Network', 'Miu', Momentum);
FNnwFile.WriteFloat('Network', 'Alpha', Alpha);
FNnwFile.WriteInteger('Network', 'Epoch', EpochCount);
FNnwFile.WriteInteger('Network','CountLayers', LayerCount);
// showmessage('2');
// задается количество нейронов в слоях
for i := 0 to LayerCount - 1 do
FNnwFile.WriteInteger('Network','Layer_'+IntToStr(i), StrToInt(NeuronsInLayer[i]));
// загрузка весовых коэффициентов и смещения
// showmessage('3');
for i:= 1 to LayerCount - 1 do
begin
// showmessage( inttostr(LayerCount)+' ---5 '+NeuronsInLayer[0]);
for j := 0 to StrToInt(NeuronsInLayer[i]) - 1 do
begin
// showmessage(inttostr(j)+' ---6');
for k := 0 to StrToInt(NeuronsInLayer[i-1]) do
FNnwFile.WriteFloat('Network','W_'+IntToStr(i-1)+'_'+IntToStr(k)+'_'+IntToStr(j), LayersBP[i].NeuronsBP[j].Weights[k]);
FNnwFile.WriteFloat('Network','WT_'+IntToStr(i-1)+'_'+IntToStr(j),
LayersBP[i].NeuronsBP[j].Weights[StrToInt(NeuronsInLayer[j])]);
end;
end;

end;

В последней строке опечатка NeyronsInLayer[j] нужно заменить на NeyronsInLayer[i] ! Долго блин не мог понять, в чем дело происходит :) ...