• 大小: 6.76MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-14
  • 语言: 其他
  • 标签:

资源简介

BP神经网络用于两类图片识别分类

资源截图

代码片段和文件信息

//#include
#include
#include
#include
#include
#include
//#include 
#include
#include
#include “deal_image.h“
//using namespace std;

#define innode 25  //输入结点数  R
#define hidenode 10//隐含结点数  C
#define outnode 2 //输出结点数
#define trainsample 2000//BP训练样本数
#define testsample 200//BP训练样本数

double w[innode][hidenode];//隐含结点权值
double w1[hidenode][outnode];//输出结点权值

void save_weight();
void show_weight();
void read_weight();
void clear_weight();
class BpNet
{
public:
    double p[trainsample][innode];     //输入的样本
    double t[trainsample][outnode];    //样本要输出的

BpNet();
    virtual ~BpNet();
 
void init();
    void train(double p[trainsample][innode]double t[trainsample][outnode]);//Bp训练
    double *recognize(double *p);//Bp识别

    double rate_w; //权值学习率 (输入层-隐含层)
    double rate_w1;//权值学习率 (隐含层-输出层)
    double rate_b1;//隐含层阀值学习率
    double rate_b2;//输出层阀值学习率

    double e;//误差计算
    double error;//允许的最大误差
    double result[outnode];// Bp输出

};

BpNet::BpNet()
{
    error=1.0;
    e=0.0;

    rate_w=0.15;  //权值学习率 (输入层--隐含层)
    rate_w1=0.15; //权值学习率 (隐含层--输出层)

}

BpNet::~BpNet()
{

}

/***********   权值初始化   **************/
void winit(double m[]int n) 
{
srand((unsigned)time(NULL));   //防止多次随机产生的结果一致的情况
for(int j=0;j {
m[j]=rand()%51/100.0-0.25;    //生成[-0.250.25]的随机数
cout<// m[j]=0.1;
}
cout<}
//ofstream outfile;
ifstream infile;
ifstream infile_train;
ifstream infile_test;
/***********   各权值和阈值的初始化  ************/
void BpNet::init()
{
srand((int)time(0));   //防止多次随机产生的结果一致的情况
cout<<“输入节点权值w:“;
    winit((double*)w(innode)*(hidenode));      //权值初始化,个数为  输入层节点数  乘以  隐藏层节点数

cout<<“输出节点权值w1:“;
winit((double*)w1(hidenode)*outnode);    //个数为  隐藏层节点数  乘以  输出层节点数

cout<
save_weight();
}

double X[trainsample][innode];         //训练样本
double Y[trainsample][outnode];        //预计结果
double Z[trainsample][innode+outnode];    // 训练样本+ 预计结果  
/***************    读取训练样本   ****************/
void read_trian()
{
int a=0;
infile_train.open(“feature_train_cross.txt“);
while (!infile_train.eof() && a!=trainsample)  
{  
string line;
getline(infile_trainline);
istringstream istr(line); 
// cout< for(int j=0;j {
istr>>Z[a][j];
}
a++;

    //cout<<“ZZZZZZZZZZZZZZZ“< for(int i=0;i {
for(int j=0;j {
// cout< }
// cout< }
//cout<<“XXXXXXXXXXXXXXXXXXX“< for(int i=0;i {
for(int j=0;j {
X[i][j]=Z[i][j];
// cout< }
// cout<
// cout<<“YYYYYYYYYYYYYYYY“< for(int i=0;i {
for(int j=0;j {
Y[i][j]=Z[i][innode+j];
// cout< }
// cout<

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      11502  2016-05-21 20:55  BP\BP\BP.cpp

     文件       4073  2016-05-20 02:30  BP\BP\BP.vcxproj

     文件       1077  2016-05-20 02:30  BP\BP\BP.vcxproj.filters

     文件       2732  2016-05-21 20:55  BP\BP\BP3weight.txt

     文件       1799  2016-05-21 20:32  BP\BP\BP3weight111.txt

     文件      11789  2016-05-19 17:03  BP\BP\BP_3.h

     文件       6604  2016-05-20 15:13  BP\BP\deal_image.h

     文件         71  2016-05-21 20:55  BP\BP\Debug\BP.lastbuildstate

     文件       2395  2016-05-21 20:55  BP\BP\Debug\BP.log

     文件     513821  2016-05-21 20:55  BP\BP\Debug\BP.obj

     文件       1146  2016-05-21 20:55  BP\BP\Debug\cl.command.1.tlog

     文件      10552  2016-05-21 20:55  BP\BP\Debug\CL.read.1.tlog

     文件        328  2016-05-21 20:55  BP\BP\Debug\CL.write.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link-cvtres.read.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link-cvtres.write.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link-rc.read.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link-rc.write.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link.11504-cvtres.read.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link.11504-cvtres.write.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link.11504-rc.read.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link.11504-rc.write.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link.11504.read.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link.11504.write.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link.12132-cvtres.read.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link.12132-cvtres.write.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link.12132-rc.read.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link.12132-rc.write.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link.12132.read.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link.12132.write.1.tlog

     文件          2  2016-05-21 20:55  BP\BP\Debug\link.12868-cvtres.read.1.tlog

............此处省略10161个文件信息

评论

共有 条评论

相关资源