下图用matlab怎么编bp算法代码

下图用matlab怎么编bp算法代码,第1张

%读取训练数据

[f1,f2,f3,f4,class] = textread('trainData.txt' , '%f%f%f%f%f',150)

%特征值归一化

[input,minI,maxI] = premnmx( [f1 , f2 , f3 , f4 ]')

%构造输出矩阵

s = length( class)

output = zeros( s , 3 )

for i = 1 : s

output( i , class( i ) ) = 1

end

%创建神慎圆绝宽姿经网络

net = newff( minmax(input) , [10 3] , { 'logsig' 'purelin' } , 'traingdx' )

%设置训练参数

net.trainparam.show = 50

net.trainparam.epochs = 500

net.trainparam.goal = 0.01

net.trainParam.lr = 0.01

%开始训练

net = train( net, input , output' )

%读取测试数据

[t1 t2 t3 t4 c] = textread('testData.txt' , '%f%f%f%f%f',150)

%测试数据归腔誉一化

testInput = tramnmx ( [t1,t2,t3,t4]' , minI, maxI )

%仿真

Y = sim( net , testInput )

%统计识别正确率

[s1 , s2] = size( Y )

hitNum = 0

for i = 1 : s2

[m , Index] = max( Y( : , i ) )

if( Index == c(i) )

hitNum = hitNum + 1

end

end

sprintf('识别率是 %3.3f%%',100 * hitNum / s2 )

看了你的数据,你至少要有的类标号吧,不知道你哪里是输入向量,哪里是输出向量

段戚闭程序基启配于Viola-Jones 算检测脸、鼻、眼睛其程先用faceDetector = vision.CascadeObjectDetector构造给检测器再用bboxes = step(faceDetector, I)检悄仔指测脸

copy来的:

lc

P=[110 0.807 240 0.2 15 1 18 2 1.5

110 2.865 240 0.1 15 2 12 1 2

110 2.59 240 0.1 12 4 24 1 1.5

220 0.6 240 0.3 12 3 18 2 1

220 3 240 0.3 25 3 21 1 1.5

110 1.562 240 0.3 15 3 18 1 1.5

110 0.547 240 0.3 15 1 9 2 1.5]

%110 1.318 300 0.1 15 2 18 1 2]

T=[54248 162787 168380 314797

28614 63958 69637 82898

86002 402710 644415 328084

230802 445102 362823 335913

60257 127892 76753 73541

34615 93532 80762 110049

56783 172907 164548 144040]

%40907 117437 120368 130179]

m=max(max(P))

n=max(max(T))

P=P'/m

T=T'/n

%-------------------------------------------------------------------------%

pr(1:9,1)=0%输入矢量的取值范围矩阵

pr(1:9,2)=1

bpnet=newff(pr,[12 4],, 'traingdx', 'learngdm')

%建立BP神经网络, 12个隐层神经元,4个输出神经元

%tranferFcn属性 'logsig' 隐层采用Sigmoid传输函数

%tranferFcn属性 'logsig' 输出层采用Sigmoid传输函数

%trainFcn属性 'traingdx' 自适应调整学习速率附加动量因子梯度下降反向传播算法训练贺租函数禅搜兆

%learn属性 'learngdm' 附加动量因子的梯度下降学习函数

net.trainParam.epochs=1000%允许最大训练步数2000步

net.trainParam.goal=0.001%训练目标最小误差漏迹0.001

net.trainParam.show=10%每间隔100步显示一次训练结果

net.trainParam.lr=0.05%学习速率0.05

bpnet=train(bpnet,P,T)

%-------------------------------------------------------------------------

p=[110 1.318 300 0.1 15 2 18 1 2]

p=p'/m

r=sim(bpnet,p)

R=r'*n

display(R)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12554949.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存