资源简介
这个资源使用实现lenet-5的网络结构来MNIST数据集,代码参考了UFLDL上的相关的代码,以及R. B. Palm实现的CNN中的相关代码,为了适应数据集我把lenet-5输入的大小改为了28*28,c3的每一张特征图都与s4的每一张特征图相关,训练的结果可以达到99.1%

代码片段和文件信息
function checkgrads(netxy)
epsilon = 1e-4;
er = 1e-8;
n = numel(net.layers);
for l = n : -1 : 2
if strcmp(net.layers{l}.type‘Soft‘)
for j = 1 : numel(net.layers{l}.b)
net_m = net; net_p = net;
net_p.layers{l}.b(j) = net_m.layers{l}.b(j) + epsilon;
net_m.layers{l}.b(j) = net_m.layers{l}.b(j) - epsilon;
net_m = cnnff(net_mx);net_m = cnnbp(net_my);
net_p = cnnff(net_px);net_p = cnnbp(net_py);
d = (net_p.L - net_m.L) / (2 * epsilon);
e = abs(d - net.layers{l}.db(j));
if e > er
error(‘numrical graddient checking failed at softb‘);
end
end
for i = 1 : size(net.layers{l}.w1)
for j = 1 : size(net.layers{l}.w2)
net_m = net; net_p = net;
net_p.layers{l}.w(ij) = net_p.layers{l}.w(ij) + epsilon;
net_m.layers{l}.w(ij) = net_m.layers{l}.w(ij) - epsilon;
net_m = cnnff(net_mx); net_m = cnnbp(net_my);
net_p = cnnff(net_px); net_p = cnnbp(net_py);
d = (net_p.L - net_m.L)/(2*epsilon);
e = abs(d - net.layers{l}.dw(ij));
if e > er
error(‘numrical graddient checking faild at softw‘);
end
end
end
end
if strcmp(net.layers{l}.type‘F6‘)
for j = 1 : size(net.layers{l}.b1)
net_m = net;net_p = net;
net_p.layers{l}.b(j) = net_p.layers{l}.b(j) + epsilon;
net_m.layers{l}.b(j) = net_m.layers{l}.b(j) - epsilon;
net_p = cnnff(net_px); net_p = cnnbp(net_py);
net_m = cnnff(net_mx); net_m = cnnbp(net_my);
%db = net.layers{l}.db(j);
d = (net_p.L - net_m.L) / (2 * epsilon);
e = abs(d - net.layers{l}.db(j));
if e > er
error(‘numrical graddient checking failed at F6b‘);
end
end
for i = 1 : size(net.layers{l}.w1)
for j = 1 : size(net.layers{l}.w2)
net_m = net;net_p = net;
net_p.layers{l}.w(ij) = net_p.layers{l}.w(ij) + epsilon;
net_m.layers{l}.w(ij) = net_m.layers{l}.w(ij) - epsilon;
net_p = cnnff(net_px);net_p =cnnbp(net_py);
net_m = cnnff(net_mx);net_m = cnnbp(net_my);
d = (net_p.L - net_m.L) / (2 * epsilon);
e = abs(d - net.layers{l}.dw(ij));
if e > er
error(‘numrical gradient checking failed at F6w‘);
end
end
end
end
if strcmp(net.layers{l}.type‘C5‘)
for i = 1 : size(net.layers{l}.w1)
for j = 1 : size(net.layers{l}.w2)
net_m = net;net_p = net;
net_p.layers{l}.w(ij) = net_p.layers{l}.w(ij) + epsilo
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7089 2015-01-15 09:38 Lenet\checkgrads.m
文件 858 2015-01-13 16:08 Lenet\cnnapplyGrads.m
文件 3248 2015-01-15 10:51 Lenet\cnnbp.m
文件 2475 2015-01-15 11:03 Lenet\cnnff.m
文件 823 2015-01-15 09:37 Lenet\cnnTrain.m
文件 1958 2015-01-13 09:37 Lenet\expand.m
文件 80 2015-01-13 15:01 Lenet\flipall.m
文件 2595 2015-01-13 14:46 Lenet\initialParameters.m
文件 811 2013-09-25 15:14 Lenet\loadMNISTImages.m
文件 516 2013-09-25 15:14 Lenet\loadMNISTLabels.m
文件 60 2015-01-13 14:25 Lenet\sigm.m
文件 7840016 2015-01-14 22:14 Lenet\t10k-images.idx3-ubyte
文件 10008 2015-01-14 22:14 Lenet\t10k-labels.idx1-ubyte
文件 47040016 1996-11-18 23:36 Lenet\train-images.idx3-ubyte
文件 60008 1996-11-18 23:36 Lenet\train-labels.idx1-ubyte
文件 1295 2015-01-15 13:04 Lenet\trainLenet.m
目录 0 2015-01-14 22:24 Lenet
----------- --------- ---------- ----- ----
54971856 17
相关资源
- 编程实现二维DCT变换
- 图像二值化
- 用FFT对信号进行频谱分析
- Tone-Reservation
- QGA 量子遗传算法
- 差分形式的阻滞增长模型
- 遗传算法的M文件
- 简单二阶互联系统的非线性动力学分
- 手写数字识别-模板匹配法
- Stock_Watson_动态因子分析模型
- 果蝇优化算法优化支持向量回归程序
- 自己做的一个简单GUI扑克纸牌识别-
- multi output SVR
- AR过程的线性建模过程与各种功率谱估
- PCNN TOOLBOX
- plstoolbox.zip
- 中国国家基础地理信息系统GIS数据
- 粒子群微电网优化调度
- 矩阵分析-经典教材-中文版-Roger.A.Ho
- 压缩感知TwIST
- 基于最小错误率的贝叶斯手写数字分
- 最全系统辨识源代码,包括多种最小
- 导弹制导实验
- 深度学习: MNIST的数据集
- 画跟踪精确度图的程序.zip
- 重力场大地水准面及重力异常阶次误
- prtools5.2.3工具包
- 脉冲耦合神经网络工具箱PCNN-toolbox
- SVM算法-回归拟合程序.zip
- Kriging代理模型EGO算法.zip
评论
共有 条评论