📄 nasze.m
字号:
clc;
siec1=network;
siec1.numInputs=3; % liczba wejsc
siec1.numLayers=4; % liczba warstw
siec1.biasConnect(2)=1; % prog pierwszej warstwy
siec1.biasConnect(4)=1; % prog pierwszej warstwy
siec1.inputConnect(1,1)=1 % laczy pierwsze wejscie z pierwsza warstwa
siec1.inputConnect(2,1)=1 % laczy pierwsze wejscie z druga warstwa
siec1.inputConnect(1,2)=1 % laczy drugie wejscie z druga warstwa
siec1.inputConnect(2,2)=1 % laczy drugie wejscie z pierwsza warstwa
siec1.inputConnect(3,2)=1 % laczy drugie wejscie z trzecia warstwa
siec1.inputConnect(4,2)=1 % laczy drugie wejscie z trzecia warstwa
siec1.inputConnect(2,3)=1 % laczy trzecie wejscie z trzecia warstwa
siec1.inputConnect(4,3)=1 % laczy trzecie wejscie z czwarta warstwa
siec1.layerConnect(1,1)=0; % laczy warstwe 1 z warstwa 1
siec1.layerConnect(2,1)=0; % laczy warstwe 1 z warstwa 2
siec1.layerConnect(3,1)=0; % laczy warstwe 1 z warstwa 3
siec1.layerConnect(4,1)=1; % laczy warstwe 1 z warstwa 4
siec1.layerConnect(1,2)=0; % laczy warstwe 2 z warstwa 1
siec1.layerConnect(2,2)=0; % laczy warstwe 2 z warstwa 2
siec1.layerConnect(3,2)=1; % laczy warstwe 2 z warstwa 3
siec1.layerConnect(4,2)=1; % laczy warstwe 2 z warstwa 4
siec1.layerConnect(1,3)=0; % laczy warstwe 3 z warstwa 1
siec1.layerConnect(2,3)=0; % laczy warstwe 3 z warstwa 2
siec1.layerConnect(3,3)=0; % laczy warstwe 3 z warstwa 3
siec1.layerConnect(4,3)=1; % laczy warstwe 3 z warstwa 4
siec1.layerConnect(1,4)=0; % laczy warstwe 4 z warstwa 1
siec1.layerConnect(2,4)=0; % laczy warstwe 4 z warstwa 2
siec1.layerConnect(3,4)=0; % laczy warstwe 4 z warstwa 3
siec1.layerConnect(4,4)=1; % laczy warstwe 4 z warstwa 4
siec1.outputConnect=[1 1 0 1]; % oznacza ze siec bedzie miala 3 wyjscia (outputs)
siec1.targetConnect=[0 0 0 1]; % oznacza iz wzorzec (target) bedzie podawany na wyjscie warstwy 3
siec1.inputs{1}.range=[0 10] % jeden element wejsciowy wchodzacy na wejscie nr 1 z zakresu 0 do 10
siec1.inputs{2}.range=[-2 2; -2 2; -2 2] % trzy elementy wejsciowych wchodzacych na wejscie nr 2 sa z zakresu -2 do 2
siec1.inputs{3}.range=[-2 2; -2 2; -2 2;-2 2] % piec elementow wejsciowych wchodzacych na wejscie nr 2 sa z zakresu -2 do 2
%siec1.layers{1} % elementy warstwy nr 1
% warstwa 1
siec1.layers{1}.size=2; % ustawia liczbe neuronow warstwy 1 na 4
siec1.layers{1}.transferFcn='logsig'; % ustawia funkcje przejscia warstwy 1 na tangens sigmoidalny
siec1.layers{1}.initFcn='initnw'; % ustawia inicjalizacje warstwy 1 na metode Nguyen-Widrowa'a
% warstwa 2
siec1.layers{2}.size=4; % ustawia liczbe neuronow warstwy 2 na 3
siec1.layers{2}.transferFcn='tansig'; % ustawia funkcje przejscia warstwy 2 na logarytm sigmoidalny
siec1.layers{2}.initFcn='initnw'; % ustawia inicjalizacje warstwy 2 na metode Nguyen-Widrowa'a
% warstwa 3
siec1.layers{3}.size=3; % ustawia liczbe neuronow warstwy 3 na 1
siec1.layers{3}.transferFcn='tansig'; % ustawia funkcje przejscia warstwy 3 na funkcje liniowa
siec1.layers{3}.initFcn='initnw'; % ustawia inicjalizacje warstwy 3 na metode Nguyen-Widrowa'a
siec1.layers{4}.size=5; % ustawia liczbe neuronow warstwy 3 na 1
siec1.layers{4}.transferFcn='logsig'; % ustawia funkcje przejscia warstwy 3 na funkcje liniowa
siec1.layers{4}.initFcn='initnw'; % ustawia inicjalizacje warstwy 3 na metode Nguyen-Widrowa'a
% siec1.outputs
% siec1.outputs{2}
% siec1.targets
% siec1.targets{3}
% siec1.biases
% siec1.biases{1}
siec1.inputWeights{1,2}.delays=1; % wprowadzenie linni opozniajacej z jednym elementem opozniajacym (+ sygnal biezacy) dla warstwy 2 z wejscia 1
siec1.inputWeights{2,2}.delays=1; % wprowadzenie linni opozniajacej z jednym elementem opozniajacym dla warstwy 2 z wejscia 2
siec1.layerWeights{4,4}.delays=1; % wprowadzenie linni opozniajacej z jednym elementem opozniajacym dla warstwy 3 z wyjscia warstwy 3
siec1.initFcn='initlay'; % ustawia inicjalizacje wag i progow sieci metoda Nguyen-Widrowa'a
siec1.performFCN='mse'; % jakosc dzialania sieci okreslac bedzie blad sredniokwadratowy (mse)
siec1.trainFcn='trainlm'; % ustawia metode uczenia sieci na metode propagacji wstecznej Levenberg-Marquardt'a
% Sprawdz wartosci progow i wag np:
% siec1.IW{1,1}
% siec1.IW{2,1}
% siec1.IW{2,2}
% siec1.IW{3,1}
%
% siec1.LW{3,2}
% siec1.LW{3,3}
%
% siec1.b{1}
% siec1.b{2}
% siec1.b{3}
%siec1=init(siec1) % Inicjalizacja parametrow sieci
%
% siec1.IW{1,1} %sprawdzenie progow i wag
% siec1.IW{2,1}
% siec1.IW{2,2}
% siec1.IW{3,1}
% siec1.LW{3,2}
% siec1.LW{3,3}
% siec1.b{1}
% siec1.b{2}
% siec1.b{3}
% Budujemy przykladowy wektor wejsc na siec P (dwa elementy dwuskladnikowe oraz dwa elementy piecioskladnikowe):
P={[1] [1] [1];[1; 0; 1] [1; 0; 1] [0; -2; 1];[1; -2; -1; 0; ] [1; -2; -1; 0; ] [2; -2; 1; 0; ]}
%P={[2; 1] [2; 1] [3; 1] [1; 1];[1; 0; 1] [1; 0; 1] [0; -2; 1] [2; -2; 1] ;[1; -2; -1; 0; ] [1; -2; -1; 0; ] [2; -2; 1; 0; ] [ 1; 1; 0; 2]}
T={-1 1 1};
Y = sim(siec1, P)
siec1.trainParam.goal=0;
siec1=train(siec1, P, T);
Y1=sim(siec1, P)
gensim(siec1)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -