可以到这里下载数据:
http://wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/mnist_download.html
#include
class CIDX3UBYTE
{
public:
CIDX3UBYTE(char * strFile)
{
m_nFileLen = filesize(strFile);
//{
FILE * file_TrainImage = fopen(strFile, "rb");
fread(&nMagic_Num, 1, 4, file_TrainImage);
fread(&Num_of_images, 1, 4, file_TrainImage);
fread(&nWidth, 1, 4, file_TrainImage);
fread(&nHeight, 1, 4, file_TrainImage);
//fclose(file_TrainImage);
BigToLittle32(&nMagic_Num);
BigToLittle32(&Num_of_images);
BigToLittle32(&nWidth);
BigToLittle32(&nHeight);
//}
{
for ( int n = 0; n
unsigned char * pTempImageBuf = new unsigned char[nWidth*nHeight]; //测试图像是单字节;
if (pTempImageBuf)
{
m_vector_ImageBuf.push_back(pTempImageBuf);
}
}
}
{
int nImageSize = nWidth * nHeight;
for ( int n = 0; n
fread(m_vector_ImageBuf.at(n), 1, nImageSize, file_TrainImage);
if(0)
{
static FILE * fTemp = fopen("test_iamgebuf.images", "w+b");
fwrite(m_vector_ImageBuf.at(n), 1, nImageSize, fTemp);
}
}
}
fclose(file_TrainImage);
}
~CIDX3UBYTE()
{
//清理内存;
}
public:
int nMagic_Num = 0;
int Num_of_images = 0;
int nWidth = 0;
int nHeight = 0;
std::vector
private:
int m_nFileLen;
private:
long filesize(char * pFileName)
{
long int save_pos;
long size_of_file;
FILE * fp = fopen(pFileName, "r+b");
save_pos = ftell(fp);
fseek(fp, 0L, SEEK_END);
size_of_file = ftell(fp);
fseek(fp, save_pos, SEEK_SET);
fclose(fp);
return(size_of_file);
}
void read_buf_OneByOne() //这里的数值,必须按照顺序读取,不可以作为数值直接读取,大小端的问题;
{
//算了,还是用BigToLittle32转换一下吧;
}
void BigToLittle32(int * pN)
{
unsigned char nTemp[4] = {0};
nTemp[0] = *(((unsigned char*)pN) + 3);
nTemp[1] = *(((unsigned char*)pN) + 2);
nTemp[2] = *(((unsigned char*)pN) + 1);
nTemp[3] = *(((unsigned char*)pN) + 0);
memcpy(pN, nTemp, 4);
}
};
void CMFCApplication5Dlg::OnBnClickedButtonTest()
{
CIDX3UBYTE CIDX3UBYTE_obj("E:\\WorkSpace\\MNIST\\train-images.idx3-ubyte");
}
一些简单的测试集文件格式信息,可以参考:https://www.cnblogs.com/liuzhan709/p/9320724.html
lable文件格式参考:https://blog.csdn.net/u014046170/article/details/47445919
没有宽高,后面就是一字节数据,0~9;
https://blog.csdn.net/u012507022/article/details/51376626