Примеры
Пример 1. Создание простейшей нейронной сети (перцептрон с 3 скрытыми слоями) с помощью NeuroKernel 1.0 на Visual Basic
Set oKernel = New clsKernel
' создаем новый обьект нейроядра
Dim ret As Long
ret = oKernel.InitializeNetwork1D("Network", 5)
' инициация нейронной сети под названием "Network" и 5 слоями (входной и выходной слои включительно)
ret = oKernel.AddNeuronsToLayerNetwork1D("Network", 1, 10)
' добавляем в структуру входного слоя 10 нейронов
ret = oKernel.AddNeuronsToLayerNetwork1D("Network", 2, 10)
' добавляем в структуру 1 скрытого слоя 10 нейронов
ret = oKernel.AddNeuronsToLayerNetwork1D("Network", 3, 10)
' добавляем в структуру 2 скрытого слоя 10 нейронов
ret = oKernel.AddNeuronsToLayerNetwork1D("Network", 4, 10)
' добавляем в структуру 3 скрытого слоя 10 нейронов
ret = oKernel.AddNeuronsToLayerNetwork1D("Network", 5, 10)
' добавляем в структуру выходного слоя 10 нейронов
ret = oKernel.Create1DNetwork("Network", 5)
' создаем нейроны и связи в нейронной сети
ret = oKernel.Set1DNetworkLearningCoefficient("Network", 1.4)
' устанавливаем кэффициент обучения сети равным 1.4
Пример 2. Обучение (одна эпоха) нейронной сети из примера 1 с помощью NeuroKernel 1.0 на Visual Basic
Dim i As Long
Dim TrainingSet(10) As Long
' массив для значений входных элементов
Dim ExpectedResultSet(10) As Double
' массив для значений выходных элементов
Dim ret As Long
' предполагается, что TrainingSet() и ExpectedResultSet() заполнены
For i = 1 To 10
ret = oKernel.SetInput1D("Network", i, TrainingSet(i))
' устанавливаем значение входного элемента i
Next i
oKernel.CalculateOutput1D "Network"
' вычисляем значения выходных элементов
For i = 1 To 10
ret = oKernel.SetWeights1D("Network", i, ExpectedResultSet(i))
' устанавливаем значение выходного элемента i
Next i
ret = oKernel.AdjustWeights1D("Network")
' модифицируем веса сети с учетом ошибки
Debug.Print oKernel.Net1DByName("Network").AverageSquaredError
' выводим в окно отладки величину ошибки
Пример 3. Работа с нейронной сетью из примера 1 с помощью NeuroKernel 1.0
Dim i As Long
Dim InputSet(10) As Long
Dim tmpResult As Long
' массив для значений входных элементов
Dim ret As Long
' предполагается, что InputSet() заполнен
For i = 1 To 10
ret = oKernel.SetInput1D("Network", i, InputSet(i))
' устанавливаем значение входного элемента i
Next i
oKernel.CalculateOutput1D "Network"
' вычисляем значения выходных элементов
For i = 1 To 10
tmpResult = oKernel.Net1DByName("Network").OutputLayer(i)
' определяем значение i-го выходного элемента
Debug.Print Format$(tmpResult * 100, "0.00") & "%"
' выводим в окно отладки значение i-го выходного элемента
Next i