CreateNetworkEx(
numberOfLayers: Integer;
numberOfInputs: Integer;
Var numberOfNeuronsInLayers: Array;
initializeSynapsysMaxValue: Double;
NeuronSigmoidFuncsType: Integer);
CreateNetworkEx(
numberOfLayers: integer;
numberOfInputs: integer;
Var numberOfNeuronsInLayers: System.Array;
initializeSynapsysMaxValue: double;
NeuronSigmoidFuncsType: integer);
numberOfLayers. Число слоев в создаваемой сети. Обычно сеть состоит из двух слоев нейронов.
numberOfInputs. Число входных элементов сети. Каждый нейрон первого слоя будет содержать данное число синапсов.
numberOfNeuronsInLayers. Целочисленный массив числа нейронов в каждом слое. Если сеть состоит из двух слоев, то массив должен содержать два элемента.
initializeSynapsysMaxValue. Неотрицательное значение для инициализации синапсов каждого нейрона.
NeuronSigmoidFuncsType. Тип функции распространения сигнала в сети.
Метод CreateNetworkEx создает нейронную сеть по заданным параметрам.
Для созданной сети можно начать процесс обучения, после чего она будет готова для работы. Сеть может быть использована для сетей с обратным распространением ошибки и для самоорганизующейся сети Кохонена.
После создания сети синапсы могут быть инициализированы с помощью метода INeuralNetwork.SetSynapse или INeuralNetwork.ImportSynapses.
NeuronSigmoidFuncsType. От типа распространения сигнала зависит диапазон выходных значений сети. Возможные значения параметра:
0. Значение по умолчанию. Будет использована экспоненциальная функция (сигмоидальная). Диапазон выходных значений будет смещен: [-0.5; 0.5];
1. Используется пороговая функция, возвращающая true, если вычисленное значение меньше нуля, и false, если больше. Соответственно, выходные значения будут состоять из нулей и единиц;
2. Функция гиперболического тангенса (подобна сигмоидальной). Диапазон выходных значений: [-1.0; 1.0];
3. Экспоненциальная функция (сигмоидальная). Диапазон выходных значений будет смещен: [-0.5; 0.5];
4. Экспоненциальная функция (сигмоидальная). Диапазон выходных значений: [0.0; 1.0];
5. Экспоненциальная функция (биполярная сигмоидальная). Диапазон выходных значений: [-1.0; 1.0].
Для выполнения примера предполагается наличие в файловой системе файла «C:\NetDefenition.txt». Также добавьте ссылки на системные сборки «NN» и «IO».
Function m_CreateNetworkEx: NeuralNetwork;
Var
Net: NeuralNetwork;
ar: Array[2] Of Integer;
SynVal: Double;
NetFile: File;
TextW: ITextWriter;
Begin
Net := New NeuralNetwork.Create;
ar[0] := 3;
ar[1] := 2;
Net.CreateNetworkEx(2, 2, ar, 0.5, 3);
NetFile := New File.Create;
TextW := NetFile.OpenTextWriter("C:/NetDefenition.txt", True);
TextW.WriteLnString(Net.ExportSynapses);
SynVal := Net.GetSynapse(0, 0, 0);
SynVal := SynVal + 0.05;
Net.SetSynapse(SynVal, 0, 0, 0);
TextW.WriteLnString("----------------");
TextW.WriteLnString(Net.ExportSynapses);
Return Net;
End Function m_CreateNetworkEx;
В примере создается нейронная сеть, состоящая из двух слоев. Первый слой содержит три нейрона. Каждый нейрон содержит два входных элемента. Второй слой состоит из двух нейронов. Вес первого синапса для первого нейрона первого слоя будет получен и увеличен. Описание сети до изменения значения веса синапса и после будет выведено в файл «C:\NetDefenition.txt».
Imports System.IO;
Imports Prognoz.Platform.Interop.NN;
…
Public Shared Function m_CreateNetworkEx(): NeuralNetwork;
Var
Net: NeuralNetwork;
numberOfNeurons: array[2] Of integer;
ar: System.Array;
NetFile: StreamWriter;
SynVal: Double;
Begin
Net := New NeuralNetwork.Create();
numberOfNeurons[0] := 3;
numberOfNeurons[1] := 2;
ar := numberOfNeurons;
Net.CreateNetworkEx(2, 2, Var ar, 0.5, 3);
NetFile := File.CreateText("C:\NetDefenition.txt");
NetFile.WriteLine(Net.ExportSynapses());
SynVal := Net.GetSynapse(0, 0, 0);
SynVal := SynVal + 0.05;
Net.SetSynapse(SynVal, 0, 0, 0);
NetFile.WriteLine("------------------");
NetFile.WriteLine(Net.ExportSynapses());
NetFile.Close();
Return Net;
End Function;
В примере создается нейронная сеть, состоящая из двух слоев. Первый слой содержит три нейрона. Каждый нейрон содержит два входных элемента. Второй слой состоит из двух нейронов. Вес первого синапса для первого нейрона первого слоя будет получен и увеличен. Описание сети до изменения значения веса синапса и после будет выведено в файл «C:\NetDefenition.txt».
См. также: