資源簡介
C++版本的Bp神經網絡,工程代碼雙擊直接運行。可用于數據擬合、數據預測,N維輸入,1輸出。

代碼片段和文件信息
#include?“BpNet.h“
using?namespace?std;
BpNet::BpNet()
{
srand((unsigned)time(NULL));????????//?隨機數種子????
error?=?100.f;??????????????????????//?error初始值,極大值即可
//?初始化輸入層
for?(int?i?=?0;?i? {
inputlayer[i]?=?new?inputNode();
for?(int?j?=?0;?j? {
inputlayer[i]->weight.push_back(get_11Random());
inputlayer[i]->wDeltaSum.push_back(0.f);
}
}
//?初始化隱藏層
for?(int?i?=?0;?i?yer;?i++)
{
if?(i?==?hidelayer?-?1)
{
for?(int?j?=?0;?j? {
hiddenlayer[i][j]?=?new?hiddenNode();
hiddenlayer[i][j]->bias?=?get_11Random();
for?(int?k?=?0;?k? {
hiddenlayer[i][j]->weight.push_back(get_11Random());
hiddenlayer[i][j]->wDeltaSum.push_back(0.f);
}
}
}
else
{
for?(int?j?=?0;?j? {
hiddenlayer[i][j]?=?new?hiddenNode();
hiddenlayer[i][j]->bias?=?get_11Random();
for?(int?k?=?0;?k?yer[i][j]->weight.push_back(get_11Random());?}
}
}
}
//?初始化輸出層
for?(int?i?=?0;?i? {
outputlayer[i]?=?new?outputNode();
outputlayer[i]->bias?=?get_11Random();
}
}
void?BpNet::forwardPropagationEpoc()
{
//?forward?propagation?on?hidden?layer
for?(int?i?=?0;?i?yer;?i++)
{
if?(i?==?0)
{
for?(int?j?=?0;?j? {
double?sum?=?0.f;
for?(int?k?=?0;?k? {
sum?+=?inputlayer[k]->value?*?inputlayer[k]->weight[j];
}
sum?+=?hiddenlayer[i][j]->bias;
hiddenlayer[i][j]->value?=?sigmoid(sum);
}
}
else
{
for?(int?j?=?0;?j? {
double?sum?=?0.f;
for?(int?k?=?0;?k? {
sum?+=?hiddenlayer[i?-?1][k]->value?*?hiddenlayer[i?-?1][k]->weight[j];
}
sum?+=?hiddenlayer[i][j]->bias;
hiddenlayer[i][j]->value?=?sigmoid(sum);
}
}
}
//?forward?propagation?on?output?layer
for?(int?i?=?0;?i? {
double?sum?=?0.f;
for?(int?j?=?0;?j? {
sum?+=?hiddenlayer[hidelayer?-?1][j]->value?*?hiddenlayer[hidelayer?-?1][j]->weight[i];
}
sum?+=?outputlayer[i]->bias;
outputlayer[i]->value?=?sigmoid(sum);
}
}
void?BpNet::backPropagationEpoc()
{
//?backward?propagation?on?output?layer
//?--?compute?delta
for?(int?i?=?0;?i? {
double?tmpe?=?fabs(outputlayer[i]->value?-?outputlayer[i]->rightout);
error?+=?tmpe?*?tmpe?/?2;
outputlayer[i]->delta
=?(outputlayer[i]->value?-?outputlayer[i]->rightout)*(1?-?outputlayer[i]->value)*outputlayer[i]->value;
}
//?backward?propagation?on?hidden?layer
//?--?compute?delta
for?(int?i?=?hidelayer?-?1;?i?>=?0;?i--)????//?反向計算
{
if?(i?==?hidelayer?-?1)
{
for?(int?j?=?0;?j? {
double?sum?=?0.f;
for?(int?k?=?0;?k?yer[k]->delta?*?hiddenlayer[i][j]->weight[k];?}
hiddenLa
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-03-19?14:37??BpNet\
?????目錄???????????0??2019-02-25?14:26??BpNet\.vs\
?????目錄???????????0??2019-02-25?14:26??BpNet\.vs\BpNet\
?????目錄???????????0??2019-02-25?14:26??BpNet\.vs\BpNet\v14\
?????文件??????885760??2019-03-19?14:37??BpNet\.vs\BpNet\v14\.suo
?????目錄???????????0??2019-03-19?14:36??BpNet\BpNet\
?????文件????????1297??2019-02-25?14:26??BpNet\BpNet.sln
?????文件?????8622080??2019-03-19?14:37??BpNet\BpNet.VC.db
?????文件????????8390??2019-03-19?14:35??BpNet\BpNet\BpNet.cpp
?????文件????????2522??2019-03-19?14:36??BpNet\BpNet\BpNet.h
?????文件????????7484??2019-02-25?14:27??BpNet\BpNet\BpNet.vcxproj
?????文件????????1171??2019-02-25?14:27??BpNet\BpNet\BpNet.vcxproj.filters
?????目錄???????????0??2019-02-25?14:27??BpNet\BpNet\Debug\
?????文件?????????772??2019-02-25?14:27??BpNet\BpNet\Debug\BpNet.Build.CppClean.log
?????文件????????1233??2019-02-25?14:27??BpNet\BpNet\Debug\BpNet.log
?????文件??????287686??2019-02-25?14:27??BpNet\BpNet\Debug\BpNet.obj
?????目錄???????????0??2019-02-25?14:27??BpNet\BpNet\Debug\BpNet.tlog\
?????文件?????????184??2019-02-25?14:27??BpNet\BpNet\Debug\BpNet.tlog\BpNet.lastbuildstate
?????文件????????1158??2019-02-25?14:27??BpNet\BpNet\Debug\BpNet.tlog\CL.command.1.tlog
?????文件???????31464??2019-02-25?14:27??BpNet\BpNet\Debug\BpNet.tlog\CL.read.1.tlog
?????文件?????????784??2019-02-25?14:27??BpNet\BpNet\Debug\BpNet.tlog\CL.write.1.tlog
?????文件????????1104??2019-02-25?14:27??BpNet\BpNet\Debug\BpNet.tlog\li
?????文件????????3210??2019-02-25?14:27??BpNet\BpNet\Debug\BpNet.tlog\li
?????文件?????????378??2019-02-25?14:27??BpNet\BpNet\Debug\BpNet.tlog\li
?????文件??????322646??2019-02-25?14:27??BpNet\BpNet\Debug\Source.obj
?????文件??????470016??2019-02-25?14:27??BpNet\BpNet\Debug\vc140.idb
?????文件??????413696??2019-02-25?14:27??BpNet\BpNet\Debug\vc140.pdb
?????文件????????1924??2019-02-25?15:11??BpNet\BpNet\Source.cpp
?????目錄???????????0??2019-02-25?14:31??BpNet\BpNet\x64\
?????目錄???????????0??2019-03-19?14:37??BpNet\BpNet\x64\Release\
?????文件???????????3??2019-03-19?14:37??BpNet\BpNet\x64\Release\BpNet.log
............此處省略7個文件信息
評論
共有 條評論