资源简介
c-c++写的卷积神经网络,没有使用库,都是自己写的函数,是vs工程文件,minst手写库识别,最基础的cnn
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include “cnn.h“
void cnnsetup(CNN* cnnnSize inputSizeint outputSize)
{
cnn->layerNum=5;
nSize inSize;
int mapSize=5;
inSize.c=inputSize.c;
inSize.r=inputSize.r;
cnn->C1=initCovlayer(inSize.cinSize.r516);
inSize.c=inSize.c-mapSize+1;
inSize.r=inSize.r-mapSize+1;
cnn->S2=initPoollayer(inSize.cinSize.r266AvePool);
inSize.c=inSize.c/2;
inSize.r=inSize.r/2;
cnn->C3=initCovlayer(inSize.cinSize.r5612);
inSize.c=inSize.c-mapSize+1;
inSize.r=inSize.r-mapSize+1;
cnn->S4=initPoollayer(inSize.cinSize.r21212AvePool);
inSize.c=inSize.c/2;
inSize.r=inSize.r/2;
cnn->O5=initOutlayer(inSize.c*inSize.r*12outputSize);
cnn->e=(float*)calloc(cnn->O5->outputNumsizeof(float));
}
Covlayer* initCovlayer(int inputWidthint inputHeightint mapSizeint inChannelsint outChannels)
{
Covlayer* covL=(Covlayer*)malloc(sizeof(Covlayer));
covL->inputHeight=inputHeight;
covL->inputWidth=inputWidth;
covL->mapSize=mapSize;
covL->inChannels=inChannels;
covL->outChannels=outChannels;
covL->isFullConnect=true; // 默认为全连接
// 权重空间的初始化,先行再列调用,[r][c]
int ijcr;
srand((unsigned)time(NULL));
covL->mapData=(float****)malloc(inChannels*sizeof(float***));
for(i=0;i covL->mapData[i]=(float***)malloc(outChannels*sizeof(float**));
for(j=0;j covL->mapData[i][j]=(float**)malloc(mapSize*sizeof(float*));
for(r=0;r covL->mapData[i][j][r]=(float*)malloc(mapSize*sizeof(float));
for(c=0;c float randnum=(((float)rand()/(float)RAND_MAX)-0.5)*2;
covL->mapData[i][j][r][c]=randnum*sqrt((float)6.0/(float)(mapSize*mapSize*(inChannels+outChannels)));
}
}
}
}
// 权重梯度变化
covL->dmapData=(float****)malloc(inChannels*sizeof(float***));
for(i=0;i covL->dmapData[i]=(float***)malloc(outChannels*sizeof(float**));
for(j=0;j covL->dmapData[i][j]=(float**)malloc(mapSize*sizeof(float*));
for(r=0;r covL->dmapData[i][j][r]=(float*)calloc(mapSizesizeof(float));
}
}
}
covL->basicData=(float*)calloc(outChannelssizeof(float));
int outW=inputWidth-mapSize+1;
int outH=inputHeight-mapSize+1;
covL->d=(float***)malloc(outChannels*sizeof(float**));
covL->v=(float***)malloc(outChannels*sizeof(float**));
covL->y=(float***)malloc(outChannels*sizeof(float**));
for(j=0;j covL->d[j]=(float**)malloc(outH*sizeof(float*));
covL->v[j]=(float**)malloc(outH*sizeof(float*));
covL->y[j]=(float**)malloc(outH*sizeof(float*));
for(r=0;r covL->d[j][r]=(float*)calloc(outWsizeof(float));
covL->v[j][r]=(float*)calloc(outWsizeof(float));
covL->y[j][r]=(float*)calloc(outWsizeof(float));
}
}
return covL;
}
Poollayer* initPoollayer(int inputWidthint inputHe
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-03-21 15:28 cnn\
目录 0 2017-07-06 20:27 cnn\.vs\
目录 0 2017-07-06 20:27 cnn\.vs\cnn\
目录 0 2017-07-06 20:27 cnn\.vs\cnn\v14\
文件 56832 2018-03-21 15:28 cnn\.vs\cnn\v14\.suo
目录 0 2017-07-13 15:54 cnn\Debug\
文件 69632 2018-03-21 15:26 cnn\Debug\Project1.exe
文件 468328 2018-03-21 15:26 cnn\Debug\Project1.ilk
文件 1118208 2018-03-21 15:26 cnn\Debug\Project1.pdb
文件 15592 2017-07-13 15:46 cnn\Debug\minst.txt
目录 0 2018-03-21 15:29 cnn\Minst\
文件 4 2018-03-21 14:50 cnn\Minst\1
文件 4 2018-03-21 14:39 cnn\Minst\1.txt
文件 4 2018-03-21 14:50 cnn\Minst\2
文件 4 2018-03-21 14:39 cnn\Minst\2.txt
文件 25659768 2017-07-06 09:25 cnn\Minst\PNG格式MNIST数据库.rar
文件 37 2017-04-27 18:40 cnn\Minst\ReadMe.txt
文件 1648877 2017-07-06 09:55 cnn\Minst\t10k-images-idx3-ubyte.gz
文件 7840016 1998-01-26 23:07 cnn\Minst\t10k-images.idx3-ubyte
文件 4542 2017-07-06 09:54 cnn\Minst\t10k-labels-idx1-ubyte.gz
文件 10008 1998-01-26 23:07 cnn\Minst\t10k-labels.idx1-ubyte
文件 9912422 2017-07-06 09:55 cnn\Minst\train-images-idx3-ubyte.gz
文件 47040016 1996-11-18 23:36 cnn\Minst\train-images.idx3-ubyte
文件 28881 2017-07-06 09:54 cnn\Minst\train-labels-idx1-ubyte.gz
文件 60008 1996-11-18 23:36 cnn\Minst\train-labels.idx1-ubyte
目录 0 2018-03-21 15:26 cnn\Project1\
目录 0 2018-03-21 15:26 cnn\Project1\Debug\
文件 975 2017-07-12 14:05 cnn\Project1\Debug\Project1.Build.CppClean.log
文件 361 2018-03-21 15:26 cnn\Project1\Debug\Project1.log
目录 0 2018-03-21 15:26 cnn\Project1\Debug\Project1.tlog\
文件 2198 2018-03-21 15:26 cnn\Project1\Debug\Project1.tlog\CL.command.1.tlog
............此处省略32个文件信息
评论
共有 条评论