马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我刚接触MATLAB不太久,现在想编写一个单隐层,输入节点,隐层节点,输出节点分别为5,11,1的梯度下降法训练BP网络的程序,想用3组数据训练,输入分别为{16.5 174 23000 45.23 32}、{21.3 178 20000 39.33 31.6}、{21.6 170 25000 49.16 33.1}对应输出为{80}、{40}、{55} 我想应用的程序如下:
close all clear echo on clc % NEWFF——生成一个新的前向神经网络 % TRAIN——对 BP 神经网络进行训练 % SIM——对 BP 神经网络进行仿真 pause
%
敲任意键开始 clc %
定义训练样本 % P 为输入矢量 P=[]; % T 为目标矢量 T=[]; pause; clc %
创建一个新的前向神经网络 net=newff(minmax(P),[11,1],{'tansig','purelin'},'traingdm') %
当前输入层权值和阈值 inputWeights=net.IW{} inputbias=net.b{1} %
当前网络层权值和阈值 layerWeights=net.LW{} layerbias=net.b{2} pause clc %
设置训练参数 net.trainParam.show = 50; net.trainParam.lr = 0.05; net.trainParam.mc = 0.9; net.trainParam.epochs = 1000; net.trainParam.goal = 1e-3; pause clc %
调用 TRAINGDM 算法训练 BP 网络 [net,tr]=train(net,P,T); pause clc %
对 BP 网络进行仿真 A = sim(net,P) %
计算仿真误差 E = T - A MSE=mse(E) pause clc echo off
但是我将我的矩阵维数不对,我对MATLAB不是很熟,这个程序也是从书上看到的,对于好多函数的作用及用法都不清楚,希望大家不吝赐教,如果能实时指导我给我点解答就更好了,我的QQ 521521490.新人刚来,如果有什么违规先说声抱歉。
|