Миркес Е. М.
Шрифт:
{Слой точек ветвления}
Layer BLay(N,M : Long)
Contents Branch(N)[M] {В состав слоя входит M точек ветвления}
InSignals M {По одному входному сигналу на точку ветвления}
OutSignals M * N {N выходных сигналов у каждой точки ветвления}
Connections
InSignals[1..M] <=> Branch[1..M].InSignals {По одному входу на точку ветвления}
{Выходные сигналы в порядке первый с каждой точки ветвления, затем второй и т.д. }
OutSignals[1..N * M]<=> Branch[+:1..M].OutSignals[1..N]
End {Конец описания слоя Точек ветвления}
{Полный слой сигмоидных нейронов с произвольными сумматорами на N входов}
Cascad FullLay(aSum : Block; N,M : Long; Char : Real)
Contents Br: BLay1(M,N), Ne: Lay1(aSum,N,M,Char) {Слой точек ветвления и слой нейронов}
InSignals N {Число входных сигналов – число точек ветвления}
OutSignals M {Один выходной сигнал на нейрон}
Parameters NumberOf(Parameters, Ne)
{Число параметров определяется как взятое M раз число параметров нейронов}
Connections
{Входные сигналы – слою точек ветвления}
InSignals[1..N]<=> Br.InSignals[1..N]
{Выходные сигналы нейронов - выходные сигналы сети}
OutSignals[1..M]<=> Ne.OutSignals[1..M]
{Параметры слоя – параметры нейронов}
Parameters[1..NumberOf(Parameters, Ne)] <=> Ne.Parameters[1..NumberOf(Parameters, Ne)]
{Выход слоя точек ветвления – вход слоя нейронов}
Br.OutSignals[1..N * M] <=> Ne.InSignals[1..N * M]
End {Конец описания слоя сигмоидных нейронов с произвольным сумматором}
{Сеть с сигмоидными нейронами и произвольными сумматорами, содержащая
Input – число нейронов на входном слое;
Output – число нейронов на выходном слое (число выходных сигналов);
Hidden – число нейронов на H>0 скрытых слоях;
N – число входных сигналов
все входные сигналы подаются на все нейроны входного слоя}
Cascad Net1(aSum : Block; Char : Real; Input, Output, Hidden, H, N : Long)
{Под тремя разными псевдонимами используется одна и та же подсеть с разными параметрами}
Contents
In: FullLay(aSum,N,Input,Char),
Hid1: FullLay(aSum,Input,Hidden,Char)
Hid2: FullLay(aSum,Hidden,Hidden,Char)[H-1] {Пусто при H=1}
Out: FullLay(aSum,Hidden,Output,Char)
InSignals N {Число входных сигналов – N}
OutSignals Output {Один выходной сигнал на нейрон}
{Число параметров определяется как сумма чисел параметров всех подсетей}
Parameters NumberOf(Parameters, In)+NumberOf(Parameters, Hid1) + (H-1)*NumberOf(Parameters, Hid2) + NumberOf(Parameters, Out)
Connections
{Входные сигналы – входному слою}
InSignals[1..N]<=> In.InSignals[1..N]
{Выходные сигналы нейронов - с выходного слоя сети}
OutSignals[1..Output]<=> Out.OutSignals[1.. Output]
{Параметры сети последовательно всем подсетям}
Parameters[1..NumberOf(Parameters,In)] <=> In.Parameters[1..NumberOf(Parameters, In)]