日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab中bp神经网络梯度怎么调精度,如何提高BP神经网络模型的预测精度?

發(fā)布時間:2024/8/1 循环神经网络 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab中bp神经网络梯度怎么调精度,如何提高BP神经网络模型的预测精度? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

請高人指點(diǎn),以下為我為畢業(yè)論文設(shè)計的BP神經(jīng)網(wǎng)絡(luò),目前存在兩個問題:

1.模型預(yù)測精度特別低。

我已經(jīng)嘗試改變隱含層節(jié)點(diǎn)數(shù)(從20到100都一一試過了),并將傳遞函數(shù)和訓(xùn)練函數(shù)都做了替換,但均無明顯效果。不知該從何處著手提高模型的預(yù)測和訓(xùn)練精度。

2.每次程序運(yùn)行完,都要提示錯誤,貌似是運(yùn)算符合不對,但是改過之后依然有誤。不知該怎么改?clc;

clear;

close all;

warning off;

tic;

%用2012年數(shù)據(jù)創(chuàng)建模型,2011年數(shù)據(jù)驗證模型精確度。 自動讀取文本文檔,第一行為農(nóng)學(xué)參數(shù),第二行至最后一行都為光譜值。

data1=importdata('E:\2012SR.txt');

data2=importdata('E:\2011SR.txt');

M1 = size(data1,2);%行

Y1 = data1(1,1:M1);%第一行所有列,農(nóng)學(xué)參數(shù),2012

M2 = size(data2,2);

Y2 = data2(1,1:M2);%第一行所有列,農(nóng)學(xué)參數(shù),2011

P =data1(2:size(data1,1),:);? ?? ?%2012年光譜數(shù)據(jù),文本里第二行開始,所有列

T = Y1 ;? ? %2012年農(nóng)學(xué)參數(shù),第一行所有列

N2011_validation=data2(2:size(data2,1),:) ;??%2011年光譜數(shù)據(jù),文本里第二行開始,所有列

N2012_data=P;? ?? ? %2012年光譜數(shù)據(jù)

net=newff(P,T,[61 1],{'tansig' 'purelin'},'traingd')

t1? ?? ?? ?? ?? ?? ?? ? = clock;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%計時開始

net? ?? ?? ?? ?? ?? ?? ?= fitnet(70);

net.trainParam.epochs? ?= 5000;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %設(shè)置訓(xùn)練次數(shù)

net.trainParam.goal? ???= 0.01;? ?? ?? ?? ?? ?? ?? ?? ?? ? %設(shè)置性能函數(shù)(訓(xùn)練要求精度)

net.trainParam.show? ???= 1;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %每10顯示

net.trainParam.Ir? ?? ? = 0.005;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%設(shè)置學(xué)習(xí)速率

net? ?? ?? ?? ?? ?? ?? ?= train(net,P,T);? ?? ?? ?? ?? ?? ?%訓(xùn)練BP網(wǎng)絡(luò)(P為輸入,T為輸出)

datat? ?? ?? ?? ?? ?? ? = etime(clock,t1);

Nets? ?? ?? ?? ?? ?? ???= net;

view(Nets);

%2011年數(shù)據(jù)進(jìn)行驗證

y = sim(net,N2011_validation);

figure;

plot(y,'k-x');hold on

plot(N2011_validation(1:126),'.k');hold on

ymin=-1;

ymax=4;

axis([0 length(N2011_validation) floor(ymin) ceil(ymax)]);

legend('Pridicted values','Measured values');

title('模型預(yù)測結(jié)果, 煙葉N含量');

%2012年數(shù)據(jù)進(jìn)行測試

y1=sim(net,N2012_data);

figure;

plot(y1,'k-x');

hold on;

plot(N2012_data(1:102),'.k');

ymin=0;

ymax=4;

axis([0 length(N2012_data) floor(ymin) ceil(ymax)]);

legend('Pridicted values','Measured values');

title('模型訓(xùn)練結(jié)果, 煙葉N含量');

%導(dǎo)入到文本文件

fid=fopen('E:\2012SR1.txt','wt');

if fid == -1

error('文件打開失敗');

end

fprintf(fid,'實際值 預(yù)測值\n');

A=[N2012_data;y1];

fprintf(fid,'%f %f\n',A);

fclose(fid);

fid=fopen('E:\2011SR1.txt','wt');

if fid == -1

error('文件打開失敗');

end

fprintf(fid,'實際值 預(yù)測值\n');

A=[N2011_validation;y];

fprintf(fid,'%f %f\n',A);

fclose(fid);

%預(yù)測效果分析

for i = 1:length(N2011_validation);

K(i)??= abs(y(i) - N2011_validation(i))/(N2011_validation(i));

end

RMSE = sqrt(sum((y-N2011_validation)*(y-N2011_validation)')/length(N2011_validation))

E= 1-sum((y-N2011_validation)*(y-N2011_validation)')/sum((N2011_validation-mean(N2011_validation))*(N2011_validation-mean(N2011_validation))')

k= average(sum(abs((y-N2011_validation)/(N2011_validation))))

%訓(xùn)練效果分析

for i = 1:length(N2012_data);

K_1(i)??= average(sum(abs((y1(i)-N2012_data(i))/(N2012_data(i)))));

end

RMSE_1=sqrt(sum((y1-N2012_data)*(y1-N2012_data)')/length(N2012_data))

E_1= 1-sum((y1-N2012_data)*(y1-N2012_data)')/sum((N2012_data-mean(N2012_data))*(N2012_data-mean(N2012_data))')

k_1 = average(sum(abs((y1-N2012_data)/(N2012_data))))

2012-12-30 17:23 上傳

點(diǎn)擊文件名下載附件

30.54 KB, 下載次數(shù): 514

2012-12-30 17:23 上傳

點(diǎn)擊文件名下載附件

23.52 KB, 下載次數(shù): 391

總結(jié)

以上是生活随笔為你收集整理的matlab中bp神经网络梯度怎么调精度,如何提高BP神经网络模型的预测精度?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。