資源簡介
基于openmp的bp神經網絡實現手寫體數字識別算法的優化。

代碼片段和文件信息
#include?
#include?“dataLoader.h“
dataLoader::dataLoader()
:mLabelLen(0)
mImageLen(0)
mNumLabel(0)
mNumImage(0)
mImageStartPos(16)
mLableStartPos(8){}
dataLoader::~dataLoader()?{
mLabelFile.close();
mImageFile.close();
}
bool?dataLoader::openLabelFile(const?char*?url)?{
mLabelFile.open(url?ios::binary?|?ios::in);
if?(mLabelFile.is_open())?{
int?num?=?0;
char?temp[4];
mLabelFile.read(temp?4);
if?(mLabelFile.gcount()?==?4)?{
num?=?GRB4(temp);
if?(DATA_INPUT_LABEL_FLAG?==?num)?{
mLabelFile.read(temp?4);
if?(mLabelFile.gcount()?==?4)?{
mNumLabel?=?GRB4(temp);
mLabelLen?=?1;
return?true;
}
else?{
cout?<“read?label?count?failed“?< }
}
else?{
cout?<“this?file?isn‘t?label?filethe?flag?is:“?< }
}
}
return?false;
}
bool?dataLoader::openImageFile(const?char*?url)?{
mImageFile.open(url?ios::binary?|?ios::in);
if?(mImageFile.is_open())?{
int?num?=?0;
char?temp[4];
mImageFile.read(temp?4);
if?(mImageFile.gcount()?==?4)?{
int?flag?=?DATA_INPUT_IMAGE_FLAG;
num?=?GRB4(temp);
if?(DATA_INPUT_IMAGE_FLAG?==?num)?{
mImageFile.read(temp?4);
if?(mImageFile.gcount()?==?4)?{
mNumImage?=?GRB4(temp);
int?width?=?0;
int?height?=?0;
mImageFile.read((char*)&width?4);
if?(mImageFile.gcount()?==?4)?{
width?=?GRB4(&width);
mImageFile.read((char*)&height?4);
if?(mImageFile.gcount()?==?4)?{
height?=?GRB4(&height);
mImageWidth?=?width;
mImageHeight?=?height;
mImageLen?=?width?*?height;
}
}
return?true;
}
else?{
cout?<“read?image?count?failed“?< }
}
else?{
cout?<“this?file?isn‘t?image?filethe?flag?is:“?< }
}
}
return?false;
}
bool?dataLoader::readIndex(int*?label?int?pos)?{
if?(mLabelFile.is_open()?&&?!mLabelFile.eof())?{
mLabelFile.seekg(mLableStartPos?+?pos*mLabelLen);
mLabelFile.read((char*)label?mLabelLen);
return?mLabelFile.gcount()?==?mLabelLen;
}
return?false;
}
bool?dataLoader::readImage(char?imageBuf[]?int?pos)?{
if?(mImageFile.is_open()?&&?!mImageFile.eof())?{
mImageFile.seekg(mImageStartPos?+?pos*mImageLen);
mImageFile.read(imageBuf?mImageLen);
return?mImageFile.gcount()?==?mImageLen;
}
return?false;
}
bool?dataLoader::read(int*?label?char?imageBuf[]?int?pos)?{
if?(readIndex(label?pos))?{
return?readImage(imageBuf?pos);
}
return?false;
}
void?dataLoader::reset()?{
if?(mImageFile.is_open())?{
mImageFile.clear();
mImageFile.seekg(mImageStartPos);
}
if?(mLabelFile.is_open())?{
mLabelFile.clear();
mLabelFile.seekg(mLableStartPos);
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-16?19:18??BP_openmp\
?????文件????????1680??2018-12-24?16:37??BP_openmp\README.md
?????目錄???????????0??2019-01-16?19:18??BP_openmp\data\
?????文件?????7840016??2018-12-24?16:37??BP_openmp\data\t10k-images.idx3-ubyte
?????文件???????10008??2018-12-24?16:37??BP_openmp\data\t10k-labels.idx1-ubyte
?????文件????47040016??2018-12-24?16:37??BP_openmp\data\train-images.idx3-ubyte
?????文件???????60008??2018-12-24?16:37??BP_openmp\data\train-labels.idx1-ubyte
?????目錄???????????0??2019-01-18?14:35??BP_openmp\src\
?????文件???????10810??2019-01-16?23:44??BP_openmp\src\NetWork.cpp
?????文件????????1940??2019-01-16?11:15??BP_openmp\src\NetWork.h
?????文件????????1304??2019-01-16?10:24??BP_openmp\src\Neuronla
?????文件?????????681??2018-12-24?16:37??BP_openmp\src\Neuronla
?????文件????????1268??2018-12-24?16:37??BP_openmp\src\Utils.h
?????文件??????????80??2019-01-18?14:34??BP_openmp\src\bash
?????文件??????????11??2019-01-17?14:32??BP_openmp\src\config.txt
?????文件????????2722??2019-01-16?10:06??BP_openmp\src\dataLoader.cpp
?????文件????????1176??2019-01-16?10:04??BP_openmp\src\dataLoader.h
?????文件???????10274??2019-01-18?14:35??BP_openmp\src\gmon.out
?????文件???????41808??2018-12-24?16:37??BP_openmp\src\main
?????文件????????5406??2019-01-18?14:34??BP_openmp\src\main.cpp
?????文件???????46920??2019-01-18?14:35??BP_openmp\src\run
?????文件???????????0??2019-01-16?09:45??BP_openmp\src\新建文本.txt
評論
共有 條評論