1. 程式人生 > >[神經網路]Matlab神經網路原理6.6.2節

[神經網路]Matlab神經網路原理6.6.2節

clc,clear,close all;

% 異或四點向量
traind = [0,0,1,1;0,1,0,1];
trainl = [0,1,1,0];

% 建立一個前向BP網路 節點為2
net = feedforwardnet(2);
net.divideFcn=''; % **關鍵,關閉網路內部的訓練集與結果錯開的功能

%% Train
net = train(net,traind,trainl); % 訓練

test_out = sim(net,traind); % 觀察結果


%% CSDN收錄版本
clear;
%%用matlab工具箱實現異或
p=[0 0 1 1;0 1 0 1];%p為輸入
t=[0 1 1 0];%t為理想輸出
%隱含層有2個神經元,輸出層有1個神經元,隱含層的傳輸函式為logsig函式
%輸出層的傳輸函式為purelin函式
net=newff(minmax(p),[2,1],{'logsig','purelin'},'trainlm');
net.trainParam.epochs=1000;%訓練的最大次數為1000
net.trainParam.goal=0.0001;%訓練的精度為0.0001
LP.lr=0.1;%訓練的學習率為0.1
net.trainParam.show=20;%顯示訓練的迭代過程
net=train(net,p,t);%開始訓練
out=sim(net,p);%用sim函式模擬驗證

結果: