BP神經(jīng)網(wǎng)絡(luò)算法原理(共13頁(yè))_第1頁(yè)
BP神經(jīng)網(wǎng)絡(luò)算法原理(共13頁(yè))_第2頁(yè)
BP神經(jīng)網(wǎng)絡(luò)算法原理(共13頁(yè))_第3頁(yè)
BP神經(jīng)網(wǎng)絡(luò)算法原理(共13頁(yè))_第4頁(yè)
BP神經(jīng)網(wǎng)絡(luò)算法原理(共13頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、BP網(wǎng)絡(luò)模型處理信息的基本原理是:輸入信號(hào)Xi通過中間節(jié)點(diǎn)(隱層點(diǎn))作用于輸出節(jié)點(diǎn),經(jīng)過非線形變換,產(chǎn)生輸出信號(hào)Yk,網(wǎng)絡(luò)訓(xùn)練的每個(gè)樣本包括輸入向量X和期望輸出量t,網(wǎng)絡(luò)輸出值Y與期望輸出值t之間的偏差,通過調(diào)整輸入節(jié)點(diǎn)與隱層節(jié)點(diǎn)的聯(lián)接強(qiáng)度取值Wij和隱層節(jié)點(diǎn)與輸出節(jié)點(diǎn)之間的聯(lián)接強(qiáng)度Tjk以及閾值,使誤差沿梯度方向下降,經(jīng)過反復(fù)學(xué)習(xí)訓(xùn)練,確定與最小誤差相對(duì)應(yīng)的網(wǎng)絡(luò)參數(shù)(權(quán)值和閾值),訓(xùn)練即告停止。此時(shí)經(jīng)過訓(xùn)練的神經(jīng)網(wǎng)絡(luò)即能對(duì)類似樣本的輸入信息,自行處理輸出誤差最小的經(jīng)過非線形轉(zhuǎn)換的信息。 一 BP神經(jīng)網(wǎng)絡(luò)模型BP網(wǎng)絡(luò)模型包括其輸入輸出模型、作用函數(shù)模型、誤差計(jì)算模型和自學(xué)習(xí)模型。(1)節(jié)點(diǎn)輸出

2、模型隱節(jié)點(diǎn)輸出模型:Oj=f(WijXi-q j) (1)輸出節(jié)點(diǎn)輸出模型:Yk=f(TjkOj-q k) (2)f-非線形作用函數(shù);q -神經(jīng)單元閾值。(2)作用函數(shù)模型作用函數(shù)是反映下層輸入對(duì)上層節(jié)點(diǎn)刺激脈沖強(qiáng)度的函數(shù)又稱刺激函數(shù),一般取為(0,1)內(nèi)連續(xù)取值Sigmoid函數(shù): f(x)=1/(1+e-x) (3)(3)誤差計(jì)算模型誤差計(jì)算模型是反映神經(jīng)網(wǎng)絡(luò)期望輸出與計(jì)算輸出之間誤差大小的函數(shù): Ep=1/2(tpi-Opi)2 (4)tpi- i節(jié)點(diǎn)的期望輸出值;Opi-i節(jié)點(diǎn)計(jì)算輸出值。(4)自學(xué)習(xí)模型神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程,即連接下層節(jié)點(diǎn)和上層節(jié)點(diǎn)之間的權(quán)重拒陣Wij的設(shè)定和誤差修正過

3、程。BP網(wǎng)絡(luò)有師學(xué)習(xí)方式-需要設(shè)定期望值和無師學(xué)習(xí)方式-只需輸入模式之分。自學(xué)習(xí)模型為 Wij(n+1)= h iOj+aWij(n) (5)h -學(xué)習(xí)因子;i-輸出節(jié)點(diǎn)i的計(jì)算誤差;Oj-輸出節(jié)點(diǎn)j的計(jì)算輸出;a-動(dòng)量因子。二 BP網(wǎng)絡(luò)模型的缺陷分析及優(yōu)化策略(1)學(xué)習(xí)因子h 的優(yōu)化采用變步長(zhǎng)法根據(jù)輸出誤差大小自動(dòng)調(diào)整學(xué)習(xí)因子,來減少迭代次數(shù)和加快收斂速度。h =h +a(Ep(n)- Ep(n-1)/ Ep(n) a為調(diào)整步長(zhǎng),01之間取值 (6)(2)隱層節(jié)點(diǎn)數(shù)的優(yōu)化 隱 節(jié)點(diǎn)數(shù)的多少對(duì)網(wǎng)絡(luò)性能的影響較大,當(dāng)隱節(jié)點(diǎn)數(shù)太多時(shí),會(huì)導(dǎo)致網(wǎng)絡(luò)學(xué)習(xí)時(shí)間過長(zhǎng),甚至不能收斂;而當(dāng)隱節(jié)點(diǎn)數(shù)過小時(shí),網(wǎng)絡(luò)的

4、容錯(cuò)能力差。利用逐步回歸分析 法并進(jìn)行參數(shù)的顯著性檢驗(yàn)來動(dòng)態(tài)刪除一些線形相關(guān)的隱節(jié)點(diǎn),節(jié)點(diǎn)刪除標(biāo)準(zhǔn):當(dāng)由該節(jié)點(diǎn)出發(fā)指向下一層節(jié)點(diǎn)的所有權(quán)值和閾值均落于死區(qū)(通常取0.1、0.05等區(qū)間)之中,則該節(jié)點(diǎn)可刪除。最佳隱節(jié)點(diǎn)數(shù)L可參考下面公式計(jì)算:L=(m+n)1/2+c (7)m-輸入節(jié)點(diǎn)數(shù);n-輸出節(jié)點(diǎn)數(shù);c-介于110的常數(shù)。(3)輸入和輸出神經(jīng)元的確定利用多元回歸分析法對(duì)神經(jīng)網(wǎng)絡(luò)的輸入?yún)?shù)進(jìn)行處理,刪除相關(guān)性強(qiáng)的輸入?yún)?shù),來減少輸入節(jié)點(diǎn)數(shù)。(4)算法優(yōu)化由于BP算法采用的是剃度下降法,因而易陷于局部最小并且訓(xùn)練時(shí)間較長(zhǎng)。用基于生物免疫機(jī)制地既能全局搜索又能避免未成熟收斂的免疫遺傳算法IGA取

5、代傳統(tǒng)BP算法來克服此缺點(diǎn)。該程序?qū)崿F(xiàn)神經(jīng)網(wǎng)絡(luò)的BP算法,輸入節(jié)點(diǎn)數(shù),輸出節(jié)點(diǎn)數(shù),隱層數(shù),隱層節(jié)點(diǎn)數(shù)任意,由用戶決定。其中隱層數(shù)指的是總共曾數(shù)包含輸出層,比如說異或算法為2層,第一層節(jié)點(diǎn)數(shù)為2,第二層也即輸出層節(jié)點(diǎn)數(shù)為1,輸入點(diǎn)數(shù)為2 。但是該程序?qū)Ξ惢蛩惴▽?shí)現(xiàn)并不理想,對(duì)多層多節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò)有較好的結(jié)果。#include iostream.h#include #include #include#include #include stdio.h #define MAXCOUNT 1e5 /迭代訓(xùn)練次數(shù)上限/ 精度0.001的隨機(jī)浮點(diǎn)數(shù),范圍在-0.50.5float randf()return

6、 (float)(rand() % 1001) * 0.001f-0.5);/高斯隨機(jī)數(shù)產(chǎn)生函數(shù)double gaussrand() static double V1, V2, S; static int phase = 0; double X; if(phase = 0) do double U1 = (double)rand() / RAND_MAX; double U2 = (double)rand() / RAND_MAX; V1 = 2 * U1 - 1; V2 = 2 * U2 - 1; S = V1 * V1 + V2 * V2; while(S = 1 | S = 0); X

7、= V1 * sqrt(-2 * log(S) / S); else X = V2 * sqrt(-2 * log(S) / S); phase = 1 - phase; return X;/定義一個(gè)多層前向BP網(wǎng)絡(luò)class BPpublic:double *p;/記錄所有的權(quán)值double *ddp;/記錄所有的權(quán)值增量int *pnode;/記錄每一層的節(jié)點(diǎn)數(shù)double *pnodey;/記錄每組每一層的節(jié)點(diǎn)的輸出值double *ddlj;/記錄每組每一層的節(jié)點(diǎn)的ddljdouble *pX;/記錄輸入樣本double *pY;/記錄輸入理想輸出值int Sidenum;int In

8、putnodenum;int outputnodenum;int yangbenzushu;BP() Sidenum=0;Inputnodenum=0;outputnodenum=0;yangbenzushu=0;BP() for(int m=0;mSidenum;m+) for(int n=0;npnodem+1;n+) delete pmn; delete ddpmn; delete pm; delete ddpm; delete p; delete ddp; p=NULL; ddp=NULL;if(p=NULL)delete pnode;for(int M=0;MSidenum;M+)d

9、elete pnodeyM;delete ddljM;delete pnodey;delete ddlj;pnodey=NULL;ddlj=NULL;/完成所有權(quán)值的初始化void getW(int sidenum,int inputnodenum,int outputnodenum1,int yangbenzu) Sidenum=sidenum; yangbenzushu= yangbenzu; Inputnodenum=inputnodenum;outputnodenum=outputnodenum1;p=new double *sidenum;ddp=new double *sidenu

10、m;pnode=new int sidenum+1;/包含輸入層輸出層每一層的節(jié)點(diǎn)數(shù)for(int i=0;isidenum+1;i+)int data=0;cout請(qǐng)輸入第i層節(jié)點(diǎn)數(shù)data; pnodei=data;for (int j=0;jsidenum;j+) pj=new double* pnodej+1; ddpj=new double*pnodej+1; for (int k=0;kpnodej+1;k+) ddpjk=new doublepnodej+1; pjk=new doublepnodej+1; for (int t=0;tpnodej+1;t+) ddpjkt=0;

11、/每一層的權(quán)值初始化為0 if(t=0)pjkt=-fabs(randf();/每一層的閥值初始化 else pjkt=randf();/每一層的權(quán)值初始化 /為記錄每一層的節(jié)點(diǎn)的輸出值和ddlj的指針開辟內(nèi)存pnodey=new double *Sidenum;ddlj=new double *Sidenum;for(int p=0;pSidenum;p+) pnodeyp = new double pnodep+1+1; ddljp=new double pnodep+1; pnodeyp0=1;/每組每層的首值為1/*/每個(gè)節(jié)點(diǎn)輸出函數(shù)double fas(double s) doubl

12、e t;t=1.0/(exp(-s)+1);return t;/*/該函數(shù)用來記錄樣本值和理想輸出值void INPUT(int yangbenzushu1 ) pY=new double*yangbenzushu1;pX=new double*yangbenzushu1;for(int yu=0;yuyangbenzushu1;yu+) pXyu=new doubleInputnodenum+1; pYyu=new doubleoutputnodenum+1;/每組樣本的首值賦為1 for(int yu1=0;yu1yangbenzushu1;yu1+) pXyu10=1; pYyu10=1

13、; cout請(qǐng)輸出樣本輸入值endl;for(int yuy=0;yuyyangbenzushu1;yuy+)for(int yy=1;yy=Inputnodenum;yy+) if(yy=Inputnodenum) coutendl; coutXyuyyy=pXyuyyy;cout請(qǐng)輸出樣本理想輸出值endl;for(int yuy1=0;yuy1yangbenzushu1;yuy1+)for(int yy1=1;yy1=outputnodenum;yy1+) /if(yy=Inputnodenum) coutendl; coutYyuy1yy1=pYyuy1yy1;/*/計(jì)算每個(gè)節(jié)點(diǎn)的輸出

14、值函數(shù)double computeYl(int KK)/KK代表第幾組組號(hào) double sum1=0;/把所有的層的每一個(gè)節(jié)點(diǎn)的輸出值算出來并記錄在 pnodey里,不包含輸入點(diǎn)值 for(int y=0;ySidenum;y+)/層數(shù) for(int r=1;rpnodey+1+1;r+)/節(jié)點(diǎn)數(shù) double sum=0; for(int z=0;zpnodey+1;z+)/前一層的節(jié)點(diǎn)數(shù) if(y=0)sum+= pXKKz*pyr-1z; else sum+=pnodeyy-1z*pyr-1z; pnodeyyr=fas(sum); for(int j=1;j=outputnoden

15、um;j+)sum1+=pow(pYKKj-pnodeySidenum-1j,2);return sum1;/*/Compute Back-Propagation-Errorsvoid ComputeBackPropagationErrors(int gf)/gf代表組號(hào)/計(jì)算所有的ddlj/for(int gf=0;gf=0;q-)/從最后一層開始 if (q=Sidenum-1)/如果是最外一層的話 for(int rt=0;rtpnodeq+1;rt+)/每層的節(jié)點(diǎn)數(shù) ddljqrt=pnodeyqrt+1*(1-pnodeyqrt+1)*(pYgfrt+1-pnodeyqrt+1) ;

16、 else for(int ry=0;rypnodeq+1;ry+) double sumtemp=0; for(int fg=0;fgpnodeq+2;fg+) sumtemp+=ddljq+1fg*pq+1fgry+1; ddljqry = pnodeyqry+1*(1-pnodeyqry+1)* sumtemp; /計(jì)算所有的ddp/for(int gf1=0;gf1yangbenzushu;gf1+)/組數(shù) for(int l=0;lSidenum;l+)/層數(shù) for(int JJ=0;JJpnodel+1;JJ+)/每一層的節(jié)點(diǎn)數(shù) for(int i=0;ipnodel+1;i+)

17、/前一層的節(jié)點(diǎn)數(shù) if(l=0)/如果是第一層的話,y值為輸入的X值 ddplJJi=ddljlJJ*pXgfi; else ddplJJi=ddljlJJ*pnodeyl-1i; /*/void UpdatetheWeightsusingBPAlgorithm() for(int cent=0;centSidenum;cent+)/層數(shù) for(int J=0;Jpnodecent+1;J+)/每一層的節(jié)點(diǎn)數(shù) for(int i=0;ipnodecent+1;i+)/前一層的節(jié)點(diǎn)數(shù) pcentJi+=0.2*ddpcentJi;/*/double xunlianErrors()/定義訓(xùn)練誤差

18、函數(shù) double error=0; double sum=0; double temp=0; double temp1=0;for(int gf1=0;gf1yangbenzushu;gf1+)/組數(shù)temp= computeYl(gf1); /temp1=zhengquelv(gf1); /sum+=temp1;for(int jj=1;jj=outputnodenum;jj+) coutpnodeySidenum-1jj; error+=temp;/ sum=sum/yangbenzushu; cout用訓(xùn)練集所得到的正確率:sumendl;return error/yangbenzus

19、hu;/*/double jiaoyanErrors(int yangbenzushu1 )/定義校驗(yàn)誤差函數(shù)double error=0; double sum=0; double temp=0; double temp1=0;for(int gf1=0;gf1yangbenzushu1;gf1+)/組數(shù)temp= computeYl(gf1); for(int jj=1;jj=outputnodenum;jj+) coutpnodeySidenum-1jj; /temp1=zhengquelv(gf1); /sum+=temp1; error+=temp;/sum=sum/yangbenz

20、ushu1; / cout用校驗(yàn)集所得到的正確率:sumendl;return error/yangbenzushu1;/*/double zhengquelv(int KK)int count=0; double av=0;/for(int gf1=0;gf1yangbenzushu;gf1+)/組數(shù)for(int jj=1;jj0) pnodeySidenum-1jj=1; else pnodeySidenum-1jj=0; if(pYKKjj=pnodeySidenum-1jj)count+; av=(double)count/outputnodenum;return av;/*/voi

21、d freeINput() if(pX!=NULL)for(int u=0;uyangbenzushu;u+) delete pXu; delete pX; pX=NULL;if(pY!=NULL)for(int u1=0;u1yangbenzushu;u1+) delete pYu1; delete pY; pY=NULL;/*/輸出所有的權(quán)值void wputout() for (int j=0;jSidenum;j+) cout第j+1層權(quán)值為:endl; for (int k=0;kpnodej+1;k+) /if(k=pnodej+1-1) coutendl; for (int t=

22、0;tpnodej+1;t+) coutpjkt ; if(t=pnodej) coutendl; /*/;void main()BP bp;int count=0;/用來統(tǒng)計(jì)所用的迭代次數(shù)/FILE *fp;int inputnodenum,outnodenum,sidenum,yangbenzunum;double error;cout請(qǐng)輸入輸入點(diǎn)數(shù),輸出點(diǎn)數(shù),隱層數(shù)inputnodenumoutnodenumsidenum;cout請(qǐng)輸入樣本組數(shù)yangbenzunum;/第一步初始化所有的權(quán)值bp.getW(sidenum,inputnodenum,outnodenum,yangben

23、zunum);/第二步輸入樣本組bp.INPUT(yangbenzunum);for(;count+)double sum=0; double temp=0;for(int fuzu=0;fuzuyangbenzunum;fuzu+) /第三步計(jì)算所有y值temp=puteYl(fuzu);/第四步Compute Back-Propagation-Errorsbp.ComputeBackPropagationErrors(fuzu);/第五步Update the Weights using BP Algorithmbp.UpdatetheWeightsusingBPAlgorithm(); s

24、um+=temp;/第六步判斷是否收斂error=sum/2*yangbenzunum;/freopen(debugout.txt,w,stdout); /fp=freopen( out.txt, w, stdout) ;/ coutcount errorendl;/ fclose(stdout);/關(guān)閉文件 /*if(count=1000)couterrorendl; if(count=1500)couterrorendl;if(count=1600)couterrorendl;*/if(count=10000)couterrorendl;if(error1.02) cout循環(huán)收斂迭代次數(shù)

25、為:countendl; /bp.freeINput();/釋放X Y空間 break;cout權(quán)值為:endl;bp.wputout();double XUNLIANER=bp.xunlianErrors();/cout訓(xùn)練誤差為:XUNLIANERendl;bp.freeINput();/釋放X Y空間/*cout請(qǐng)輸入校驗(yàn)樣本: jiaoyannum;bp.INPUT(jiaoyannum);double jiaoyanER=bp.jiaoyanErrors(jiaoyannum);cout校驗(yàn)誤差為:jiaoyanERendl;/fclose( stdout ) ;*/簡(jiǎn)介:BP(Ba

26、ck Propagation)網(wǎng)絡(luò)是1986年由Rumelhart和McCelland為首的科學(xué)家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的輸入-輸出模式映射關(guān)系,而無需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí)規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層(input)、隱層(hide layer)和輸出層(output layer)摘 要:神經(jīng)網(wǎng)絡(luò)算法是在神經(jīng)網(wǎng)絡(luò)現(xiàn)有算法的基礎(chǔ)上提出的,是通過任意選定一組權(quán)值,將給定的目標(biāo)輸出直接作為線性方程的

27、代數(shù)和來建立線性方程組,解得待求權(quán),不存在傳統(tǒng)方法的局部極小及收斂速度慢的問題,且更易理解。關(guān)鍵詞:固定權(quán)值;消元法;算法人工神經(jīng)網(wǎng)絡(luò)( ,)系統(tǒng)是世紀(jì)年代后出現(xiàn)的,它是由眾多的神經(jīng)元可調(diào)的連接權(quán)值連接而成,具有大規(guī)模并行處理、分布式信息存儲(chǔ)、良好的自組織自學(xué)習(xí)能力等特點(diǎn),在信息處理、模式識(shí)別、智能控制及系統(tǒng)建模等領(lǐng)域得到越來越廣泛的應(yīng)用。尤其誤差反向傳播算法( ,簡(jiǎn)稱網(wǎng)絡(luò))可以逼近任意連續(xù)函數(shù),具有很強(qiáng)的非線性映射能力,而且網(wǎng)絡(luò)的中間層數(shù)、各層的處理單元數(shù)及網(wǎng)絡(luò)的學(xué)習(xí)系數(shù)等參數(shù)可根據(jù)具體情況設(shè)定,靈活性很大,所以它在許多應(yīng)用領(lǐng)域中起到重要作用。近年來,為了解決神經(jīng)網(wǎng)絡(luò)收斂速度慢、不能保證收斂

28、到全局最小點(diǎn),網(wǎng)絡(luò)的中間層及它的單元數(shù)選取無理論指導(dǎo)及網(wǎng)絡(luò)學(xué)習(xí)和記憶的不穩(wěn)定性等缺陷,提出了許多改進(jìn)算法。 傳統(tǒng)的算法簡(jiǎn)述算法是一種有監(jiān)督式的學(xué)習(xí)算法,其主要思想是:輸入學(xué)習(xí)樣本,使用反向傳播算法對(duì)網(wǎng)絡(luò)的權(quán)值和偏差進(jìn)行反復(fù)的調(diào)整訓(xùn)練,使輸出的向量與期望向量盡可能地接近,當(dāng)網(wǎng)絡(luò)輸出層的誤差平方和小于指定的誤差時(shí)訓(xùn)練完成,保存網(wǎng)絡(luò)的權(quán)值和偏差。具體步驟如下:()初始化,隨機(jī)給定各連接權(quán),及閥值i,t。()由給定的輸入輸出模式對(duì)計(jì)算隱層、輸出層各單元輸出j(wijai-j) t(vjtbjt)式中:j為隱層第個(gè)神經(jīng)元實(shí)際輸出;t為輸出層第個(gè)神經(jīng)元的實(shí)際輸出;wij為輸入層至隱層的連接權(quán);vjt為隱層至輸出層的連接權(quán)。tk(tkt)t(t) jkdtvjt j(j)式中:tk為輸出層的校正誤差;jk為隱層的校正誤差。()計(jì)算新的連接權(quán)及閥值,計(jì)算公式如下:jt()jt()?琢tkj ij()ij()?茁jkikt()t()?琢tk j()=j()?茁jk式中:?琢,?茁為學(xué)習(xí)系數(shù)(?琢,?茁)。()選取下一個(gè)輸入模式對(duì)返回第步反復(fù)訓(xùn)練直到網(wǎng)絡(luò)設(shè)輸出誤差達(dá)到要求結(jié)束訓(xùn)練。傳統(tǒng)的算法,實(shí)質(zhì)上是把一組樣本輸入/輸出問題轉(zhuǎn)化為一個(gè)非線性優(yōu)化問題,并通過負(fù)梯度下降算法,利用迭代運(yùn)算求解權(quán)值問題的一種學(xué)習(xí)方法,但其收斂速度慢且容易陷入局部極小,為此提出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論