声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1322|回复: 1

[编程技巧] 请问关于用梯度下降法训练BP网的MATLAB程序

[复制链接]
发表于 2011-4-14 15:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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.新人刚来,如果有什么违规先说声抱歉。
回复
分享到:

使用道具 举报

发表于 2011-4-15 00:05 | 显示全部楼层
回复 1 # 就想回个帖 的帖子

1.函数的作用及用法不清楚, 就看help并练习其中例子
2.给齐报错讯息, 方便别人愿意出手
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-19 05:16 , Processed in 0.069344 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表