亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 神經網絡bp.txt

?? 是BP神經網絡的改進源程序
?? TXT
?? 第 1 頁 / 共 2 頁
字號:


#if !defined(AFX_BPNET_H__7ACF7725_EE66_11D6_AAF0_00E04F29491B__INCLUDED_) 
#define AFX_BPNET_H__7ACF7725_EE66_11D6_AAF0_00E04F29491B__INCLUDED_ 

#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
// BpNet.h : header file 
// 

///////////////////////////////////////////////////////////////////////////// 

// CBpNet window 
#include<matlib.h> 
class CBpNet : public CObject 
{ 
// Construction 
public: 
CBpNet(); 

// Attributes 
public: 

// Operations 
public: 

// Overrides 
// ClassWizard generated virtual function overrides 
//{{AFX_VIRTUAL(CBpNet) 
//}}AFX_VIRTUAL 

// Implementation 
public: 
void Serialize( CArchive& ar ); 
void display(Mm data); 
Mm scope(Mm mData); 
long lEpochs; 
double dblMse; 
double dblError; 

double randab(double a,double b); 
void stop(); 
void learn(); 
bool SaveBpNet(CString &strNetName); 
void LoadBpNet(CString &strNetName); 
Mm simulate(Mm mData); 
void Create(Mm mInputData,Mm mTarget,int iInput,int iHidden,int iOutput); 
virtual ~CBpNet(); 

// Generated message map functions 
protected: 
//{{AFX_MSG(CBpNet) 
// NOTE - the ClassWizard will add and remove member functions here. 
//}}AFX_MSG 

DECLARE_SERIAL(CBpNet) 

public: 
bool m_isOK; 
void LoadPattern(Mm mIn,Mm mOut); 
int iHidden;//隱層神經元個數 
int iInput;//輸入個數 
int iOutput;//輸出個數 
protected: 

Mm mInput;//單個樣本輸入數據 
Mm mSampleInput;//全體樣本輸入數據 
Mm mSampleTarget;//全體目標數據 
    Mm mHidden;//計算得到的隱層數據 
Mm mOutput;//計算輸出 
Mm mWeighti;//輸入-隱層權重 
Mm mWeighto;//隱層-輸出權重 
Mm mChangei;//輸入-隱層權重變化 
Mm mChangeo;//隱層-輸出權重變化 
public: 
Mm mInputNormFactor;//正規化因子,iInputx2 
Mm mTargetNormFactor;//輸出正規化因子,iOutputx2 
protected: 
Mm mThresholdi;//闕值 
Mm mThresholdo; 
Mm mOutputDeltas;//誤差 
Mm mHiddenDeltas; 
protected: 
bool m_IsStop; 
double dblMomentumFactor; 
double dblLearnRate1; 
double dblLearnRate2; 
void backward(int iSample); 
void forward(int iSample); 
void normalize();//將輸入輸出樣本數據正規化處理 

private: 
double dblErr; 
}; 

///////////////////////////////////////////////////////////////////////////// 


//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before
 the previous line. 

#endif // !defined(AFX_BPNET_H__7ACF7725_EE66_11D6_AAF0_00E04F29491B__INCLUDED
_) 






// BpNet.cpp : implementation file 
//////////////////////////////////////////////////////////////////// 
/////////////////人工神經網絡BP算法///////////////////////////////// 
//1、動態改變學習速率 
//2、加入動量項 
//3、運用了Matcom4.5的矩陣運算庫(可免費下載,頭文件matlib.h), 
//   方便矩陣運算,當然,也可自己寫矩陣類 
//4、可暫停運算 
//5、可將網絡以文件的形式保存、恢復 
///////////////作者:同濟大學材料學院   張純禹////////////////////// 
///////////////email:chunyu_79@hotmail.com////////////////////////// 
///////////////QQ:53806186////////////////////////////////////////// 
///////////////歡迎不斷改進!歡迎討論其他實用的算法!///////////////// 

#include "BpNet.h" 

#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 

///////////////////////////////////////////////////////////////////////////// 

// CBpNet 
IMPLEMENT_SERIAL( CBpNet, CObject, 1 ) 

CBpNet::CBpNet() 
{initM(MATCOM_VERSION);//啟用矩陣運算庫 
} 

CBpNet::~CBpNet() 
{exitM(); 
 delete this; 
} 




///////////////////////////////////////////////////////////////////////////// 

// CBpNet message handlers 
//創建新網絡 
void CBpNet::Create(Mm mInputData, Mm mTarget, int iInput, int iHidden, int iO
utput) 
{ int i,j; 
  mSampleInput=zeros(mInput.rows(),mInput.cols()); 
  mSampleTarget=zeros(mTarget.rows(),mTarget.cols());   
  mSampleInput=mInputData; 
  mSampleTarget=mTarget; 
  this->iInput=iInput; 
  this->iHidden=iHidden; 
  this->iOutput=iOutput; 
  //創建計算用的單個樣本矩陣 
  mInput=zeros(1,this->iInput); 
  mHidden=zeros(1,this->iHidden); 
  mOutput=zeros(1,this->iOutput); 
  //創建權重矩陣,并賦初值 
  mWeighti=zeros(this->iInput,this->iHidden); 
  mWeighto=zeros(this->iHidden,this->iOutput);  
  //賦初值 
  for(i=1;i<=this->iInput;i++) 
  for(j=1;j<=this->iHidden;j++) 
  mWeighti.r(i,j)=randab(-1.0,1.0); 
  for(i=1;i<=this->iHidden;i++) 
  for(j=1;j<=this->iOutput;j++) 
  mWeighto.r(i,j)=randab(-1.0,1.0); 
   
  //創建闕值矩陣,并賦值 
  mThresholdi=zeros(1,this->iHidden); 
  for(i=1;i<=this->iHidden;i++) 
  mThresholdi.r(i)=randab(-1.0,1.0); 
  mThresholdo=zeros(1,this->iOutput); 
  for(i=1;i<=this->iOutput;i++) 
  mThresholdo.r(i)=randab(-1.0,1.0); 
  //創建權重變化矩陣 
  mChangei=zeros(this->iInput,this->iHidden); 
  mChangeo=zeros(this->iHidden,this->iOutput); 
   
  mInputNormFactor=zeros(iInput,2); 
  mTargetNormFactor=zeros(iOutput,2); 
  //誤差矩陣 
   mOutputDeltas=zeros(iOutput); 
   mHiddenDeltas=zeros(iHidden); 
  //學習速率賦值 
  dblLearnRate1=0.5; 
  dblLearnRate2=0.5; 
  dblMomentumFactor=0.95; 
   
  m_isOK=false; 
  m_IsStop=false; 
  dblMse=1.0e-6;//誤差限 
  dblError=1.0; 
  lEpochs=0; 

} 
//根據已有的網絡進行預測 
Mm CBpNet::simulate(Mm mData) 
{int i,j; 
 Mm mResult; 
 Mm data=zeros(mData.rows(),mData.cols()); 
 data=mData; 
 if(mData.cols()!=iInput) 
 {::MessageBox(NULL,"輸入數據變量個數錯誤!","輸入數據變量個數錯誤!",MB_OK); 
  return mResult; 
 } 
 mResult=zeros(data.rows(),iOutput);  
 //正規化數據 
 for(i=1;i<=data.rows();i++) 
 for(j=1;j<=data.cols();j++)  
         data.r(i,j)=(data.r(i,j)-mInputNormFactor.r(j,1))/(mInputNormFactor.r
(j,2)-mInputNormFactor.r(j,1)); 
 //計算 
 int iSample; 
 Mm mInputdata,mHiddendata,mOutputdata; 
 mInputdata=zeros(1,iInput); 
 mHiddendata=zeros(1,iHidden); 
 mOutputdata=zeros(1,iOutput); 
 double sum=0.0; 
   for(iSample=1;iSample<=data.rows();iSample++){  
 //輸入層數據 
    for(i=1;i<=iInput;i++) 
  mInputdata.r(i)=data.r(iSample,i); 
 //隱層數據 
for(j=1;j<=iHidden;j++){ 
  sum=0.0; 
 for(i=1;i<=iInput;i++) 
sum+=mInputdata.r(i)*mWeighti.r(i,j); 
 sum-=mThresholdi.r(j);  
 mHiddendata.r(j)=1.0/(1.0+exp(-sum)); 
} 
     
  //輸出數據 
for(j=1;j<=iOutput;j++){ 
sum=0.0; 
for(i=1;i<=iHidden;i++) 
sum+=mHiddendata.r(i)*mWeighto.r(i,j); 
sum-=mThresholdo.r(j);  
mOutputdata.r(j)=1.0/(1.0+exp(-sum)); 
} 

//轉換 
for(j=1;j<=iOutput;j++) 
        mResult.r(iSample,j)=mOutputdata.r(j)*(mTargetNormFactor.r(j,2)-mTarge
tNormFactor.r(j,1))+mTargetNormFactor.r(j,1); 
 } 
   
 return (mResult); 
} 

void CBpNet::LoadBpNet(CString &strNetName) 
{CFile file; 
  
 if(file.Open(strNetName,CFile::modeRead)==0)    
 {MessageBox(NULL,"無法打開文件!","錯誤",MB_OK); 
  return; 
 } 
 else{ 
 CArchive myar(&file,CArchive::load); 
 Serialize(myar);  
 myar.Close(); 
 } 
 file.Close();  
} 

bool CBpNet::SaveBpNet(CString &strNetName) 
{CFile file; 
 if(strNetName.GetLength()==0) 
 return(false); 
 if(file.Open(strNetName,CFile::modeCreate|CFile::modeWrite)==0)    
 {MessageBox(NULL,"無法創建文件!","錯誤",MB_OK); 
  return(false); 
 } 
 else{ 
 CArchive myar(&file,CArchive::store); 
 Serialize(myar);  
 myar.Close(); 
 } 
 file.Close();  
 return(true); 
} 
//網絡學習 
void CBpNet::learn() 
{ int iSample=1; 
  double dblTotal; 
  MSG msg; 
  if(m_IsStop) 
  m_IsStop=false; 
  //數據正規化處理 
  normalize(); 

  while(dblError>dblMse&&!m_IsStop){ 
   dblTotal=0.0; 
   for(iSample=1;iSample<=mSampleInput.rows();iSample++){ 
forward(iSample); 
    backward(iSample); 
dblTotal+=dblErr;//總誤差 
  } 
   if(dblTotal/dblError>1.04){//動態改變學習速率 
   dblLearnRate1*=0.7; 
       dblLearnRate2*=0.7; 
   } 
   else{ 
       dblLearnRate1*=1.05; 
       dblLearnRate2*=1.05; 
   } 
   lEpochs++; 
   dblError=dblTotal; 

   ::PeekMessage(&msg,NULL,0,0,PM_REMOVE); 
   ::DispatchMessage(&msg); 
     msg.message=-1; 
   ::DispatchMessage(&msg);//這樣可以消除屏閃和假死機 
  } 
if(dblError<=dblMse) 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
自拍偷拍国产精品| 99riav一区二区三区| 欧美系列亚洲系列| 国产精品成人一区二区三区夜夜夜| 激情五月播播久久久精品| va亚洲va日韩不卡在线观看| 国产精品久久久久9999吃药| 黄色小说综合网站| 久久综合色婷婷| 国精产品一区一区三区mba视频| 欧美一区二区三区四区久久| 午夜久久久久久久久| 欧美亚洲愉拍一区二区| 亚洲韩国精品一区| av电影在线观看一区| 国产精品久久久久久久久久久免费看| 成人av手机在线观看| 国产精品乱码一区二三区小蝌蚪| 欧美欧美欧美欧美| 欧美一区二区三区在线电影| 成人高清免费观看| 正在播放一区二区| 夜夜亚洲天天久久| 欧美日韩国产美女| 95精品视频在线| 成人av午夜电影| 91精品国产综合久久精品图片| 日韩午夜三级在线| 欧美一区二区三区日韩| 日韩欧美国产wwwww| 欧美日韩成人综合天天影院| 亚洲人成亚洲人成在线观看图片| 精品国产凹凸成av人导航| 国产欧美日韩在线看| 一本久道中文字幕精品亚洲嫩| 欧美精品一卡二卡| 色一情一伦一子一伦一区| 日韩精品一区二区三区蜜臀| 欧美日韩亚洲国产综合| 欧美色大人视频| 日韩欧美国产一二三区| 久久综合精品国产一区二区三区 | 久久精品这里都是精品| 欧美揉bbbbb揉bbbbb| 日韩一区二区在线观看| 亚洲欧美在线另类| 亚洲国产一区二区在线播放| 日韩精品亚洲专区| 欧美剧情电影在线观看完整版免费励志电影| 欧美日韩免费不卡视频一区二区三区| 日韩午夜在线影院| 亚洲区小说区图片区qvod| 欧美久久久久久久久中文字幕| 3d成人h动漫网站入口| 在线免费观看日韩欧美| 精品福利二区三区| 日产精品久久久久久久性色| 在线欧美一区二区| 老司机午夜精品| 国产精品沙发午睡系列990531| 成人一级视频在线观看| 午夜不卡av免费| 中文字幕成人av| 日韩一区二区精品| 在线亚洲免费视频| 精品亚洲成av人在线观看| 国产精品国产馆在线真实露脸| 欧美乱妇一区二区三区不卡视频| 国产一区二区三区久久悠悠色av| 亚洲精品国产精华液| 久久天天做天天爱综合色| 欧美日韩国产一二三| 成人免费福利片| 美女一区二区在线观看| 亚洲一线二线三线视频| 国产日韩三级在线| 欧美精选一区二区| 在线观看91精品国产入口| 粉嫩av一区二区三区在线播放| 蜜桃视频第一区免费观看| 亚洲欧美韩国综合色| 国产人久久人人人人爽| 欧美成人性战久久| 欧美一卡2卡3卡4卡| 99久久久无码国产精品| 国产91对白在线观看九色| 久久99热99| 免播放器亚洲一区| 亚洲福中文字幕伊人影院| 亚洲图片激情小说| 亚洲欧洲性图库| 亚洲欧美电影一区二区| 亚洲午夜精品在线| 午夜电影一区二区| 日本中文一区二区三区| 男女男精品网站| 国产在线视频一区二区| 国产一区二区三区不卡在线观看| 国内精品在线播放| www.亚洲精品| 欧美在线制服丝袜| 欧美一区欧美二区| 精品国产一区a| 国产精品视频免费看| 一区二区三区中文字幕电影| 亚洲国产成人精品视频| 免费成人在线视频观看| 成人性生交大片| 欧美色视频一区| 精品av久久707| 亚洲少妇中出一区| 丝袜a∨在线一区二区三区不卡| 精品综合免费视频观看| 国产成人综合亚洲91猫咪| 91小视频在线观看| 欧美一级久久久久久久大片| 久久久91精品国产一区二区三区| 亚洲欧美日韩国产成人精品影院 | 日本视频一区二区| 国产剧情在线观看一区二区| 91看片淫黄大片一级在线观看| 欧美午夜一区二区| 精品日韩欧美一区二区| 亚洲精品中文字幕在线观看| 久久精品国产**网站演员| 成人精品电影在线观看| 欧美在线观看一区| 26uuu精品一区二区三区四区在线| 亚洲激情第一区| 国产伦理精品不卡| 欧美性生活久久| 国产亚洲一区二区三区在线观看| 艳妇臀荡乳欲伦亚洲一区| 国产精品中文字幕日韩精品| 欧美日韩一级片网站| 国产精品久久久久aaaa| 激情av综合网| 欧美群妇大交群中文字幕| 1000精品久久久久久久久| 久久99深爱久久99精品| 欧洲一区在线观看| 中文字幕av资源一区| 免费成人小视频| 欧美曰成人黄网| 中文字幕第一区二区| 久久国产婷婷国产香蕉| 91黄色激情网站| 中文字幕在线不卡| 国产一区欧美日韩| 欧美一卡2卡三卡4卡5免费| 亚洲最大的成人av| 99久久精品免费看国产| 久久午夜羞羞影院免费观看| 美女免费视频一区二区| 欧美日本国产一区| 亚洲国产日韩a在线播放性色| 91污片在线观看| 欧美国产激情二区三区| 国内精品久久久久影院薰衣草| 91精品婷婷国产综合久久| 一区二区三区高清在线| 91欧美一区二区| 亚洲区小说区图片区qvod| 99riav久久精品riav| 日本一区免费视频| 成人午夜免费av| 国产日韩欧美一区二区三区乱码 | 蜜臀91精品一区二区三区| 欧美性极品少妇| 亚洲精品乱码久久久久久日本蜜臀| 成人午夜激情影院| 欧美高清在线视频| 成人午夜短视频| 国产精品人人做人人爽人人添| 风间由美性色一区二区三区| 久久久久久久久久久久久夜| 国产精品18久久久久久久网站| 欧美成人女星排名| 韩国av一区二区三区在线观看 | 久久影院视频免费| 国产一区二区三区在线观看免费 | 中文字幕免费不卡| 成人免费视频免费观看| 中文字幕免费观看一区| 99国产精品国产精品毛片| 亚洲激情av在线| 欧美优质美女网站| 日韩av成人高清| 日韩精品综合一本久道在线视频| 蜜臀久久99精品久久久久久9| 欧美大片免费久久精品三p| 国产精品一卡二| 国产精品国产三级国产a | 国产高清亚洲一区| 中文字幕一区二区三区四区不卡 | 欧美午夜宅男影院| 蜜桃免费网站一区二区三区| 久久精品一区蜜桃臀影院| 91一区二区在线| 日本不卡一区二区三区高清视频|