⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nasze.m

📁 neural network for matlab 7.14
💻 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 + -