[神经网络]Matlab神经网络原理6.6.2节 - 使用BP网络实现异或(工具箱)

版权声明:转载请说明Zhonglihao原创 https://blog.csdn.net/xeonmm1/article/details/83691217
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函数仿真验证

结果:

猜你喜欢

转载自blog.csdn.net/xeonmm1/article/details/83691217