bp.m

来自「采用动量梯度下降算法训练BP网络」· M 代码 · 共 56 行

M
56
字号
%采用动量梯度下降算法训练BP网络。close allclearecho onclc%NEWFF---生成一个新的前向神经网络%TRAIN---对BP神经网络进行训练%SIM---对BP神经网络进行仿真pause    %敲任意键开始clc%定义训练样本%P为输入矢量P=[-1,-2,3,1;-1,1,5,-3];%T为目标矢量T=[-1,-1,1,1];pause;clc%创建一个新的前向神经网络net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm');%当前输入层权值和阈值inputWeights=net.IW{1,1}inputbias=net.b{1}%当前网络层权值和阈值layerWeights=net.LW{2,1}layerbias=net.b{2}pauseclc%设置训练参数net.trainParam.show=50;net.trainParam.lr=0.05net.trainParam.mc=0.9net.trainParam.epochs=1000;net.trainParam.goal=1e-3;pauseclc% 调用TRAINGDM算法训练BP网络[net,tr]=train(net,P,T);pauseclc%对BP网络进行仿真A=sim(net,P)%计算仿真误差E=T-AMSE=mse(E)pauseclcecho off%下面是本程序某次训练结果。图中给出了相应的误差变化曲线,可见当训练至第568步时,网络性能达标

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?