急求!!!!!!!!

cnn进行MNIST手写数字库识别

程序已调通

但查看中间层数据却提示Cannot display summaries of variables with more than 524288 elements.

后来查到可以保存为excel

但保存为excel 时提示Index exceeds matrix dimensions.

不知道该怎么办

求解

代码如下

clear all

% Hyper-parameters

imageSize = 28;

filterNum1 = 10;

filterSize1 = 5;

poolDim1 = 2;

filterNum2 = 10;

filterSize2 = 5;

poolDim2 = 2;

convDim1 = imageSize - filterSize1 + 1;

outputDim1 = convDim1/poolDim1;

convDim2 = outputDim1 - filterSize2 + 1;

outputDim2 = convDim2/poolDim2;

classNum = 10;

sampleSize = 60000;

mbSize = 50; % mini-batch sample size

r = 0.05;    % learning rate

wdr = 0.00; % weight decay rate

mom = 0.5;   % momentum

epochNum = 1;

% Load data

addpath('E:/YUI/common');

images = loadMNISTImages('E:/YUI/common/train-images-idx3-ubyte');

images = reshape(images,imageSize,imageSize,[]);

labels = loadMNISTLabels('E:/YUI/common/train-labels-idx1-ubyte');

labels(labels==0) = 10;

labelMat = full(sparse(labels,1:length(labels),1));

% Initialize parameters

Wc1 = 0.1*(randn(filterSize1,filterSize1,filterNum1));

bc1 = zeros(filterNum1,1);

Wc2 = 0.1*(randn(filterSize2,filterSize2,filterNum1,filterNum2));

bc2 = zeros(filterNum2,1);

Wd = 0.01*(rand(classNum,filterNum2*outputDim2^2) - 0.5);

bd = zeros(classNum,1);

% Velocity of parameters

vel_Wc1 = zeros(size(Wc1));

vel_bc1 = zeros(size(bc1));

vel_Wc2 = zeros(size(Wc2));

vel_bc2 = zeros(size(bc2));

vel_Wd = zeros(size(Wd));

vel_bd = zeros(size(bd));

%% Training

for e = 1:epochNum

err = 0;

rp = randperm(sampleSize);

for s = 1:mbSize:(sampleSize-mbSize+1)

mbImages = images(:,:,rp(s:s+mbSize-1));

% Feedforward

o1 = zeros(convDim1,convDim1,filterNum1,mbSize);

for i = 1:filterNum1

o1(:,:,i,:) = convn(mbImages,rot90(Wc1(:,:,i),2),'valid') + bc1(i);

end

o1Pooled = zeros(outputDim1,outputDim1,filterNum1,mbSize);

o1PoolIdx = zeros(outputDim1^2,filterNum1,mbSize);

for i = 1:mbSize

for j = 1:filterNum1

[o1Pooled(:,:,j,i) o1PoolIdx(:,j,i)] = MaxPooling(o1(:,:,j,i),[poolDim1 poolDim1]);

end

end

o2 = zeros(convDim2,convDim2,filterNum2,mbSize);

for i = 1:filterNum2

for j = 1:filterNum1

o2(:,:,i,:) = o2(:,:,i,:) + convn(o1Pooled(:,:,j,:),rot90(Wc2(:,:,j,i),2),'valid');

end

o2(:,:,i,:) = o2(:,:,i,:) + bc2(i);

end

o2Pooled = zeros(outputDim2,outputDim2,filterNum2,mbSize);

o2PoolIdx = zeros(outputDim2^2,filterNum2,mbSize);

for i = 1:mbSize

for j = 1:filterNum2

[o2Pooled(:,:,j,i) o2PoolIdx(:,j,i)] = MaxPooling(o2(:,:,j,i),[poolDim2 poolDim2]);

end

end

o2PooledVec = reshape(o2Pooled,[],mbSize);

o3 = Wd*o2PooledVec + repmat(bd,[1,mbSize]);

% Back Propagation

y = labelMat(:,rp(s:s+mbSize-1));

delta_d = o3 - y;

delta_s2 = Wd' * delta_d;

delta_s2 = reshape(delta_s2,outputDim2,outputDim2,filterNum2,mbSize);

delta_c2 = zeros(convDim2,convDim2,filterNum2,mbSize);

for i = 1:mbSize

for j = 1:filterNum2

delta_c2(:,:,j,i) = upsampleMax(delta_s2(:,:,j,i),o2PoolIdx(:,j,i),poolDim2);

end

end

delta_s1 = zeros(outputDim1,outputDim1,filterNum1,mbSize);

for i = 1:filterNum1

for j = 1:filterNum2

delta_s1(:,:,i,:) = delta_s1(:,:,i,:) + convn(delta_c2(:,:,j,:),Wc2(:,:,i,j),'full');

end

end

delta_c1 = zeros(convDim1,convDim1,filterNum1,mbSize);

for i = 1:mbSize

for j = 1:filterNum1

delta_c1(:,:,j,i) = upsampleMax(delta_s1(:,:,j,i),o1PoolIdx(:,j,i),poolDim1);

end

end

grad_Wd = (1/mbSize)*delta_d*o2PooledVec';

grad_bd = zeros(size(bd));

for i = 1:classNum

grad_bd(i) = (1/mbSize)*sum(delta_d(i,:));

end

grad_Wc2 = zeros(size(Wc2));

grad_bc2 = zeros(size(bc2));

for i = 1:filterNum2

for j = 1:filterNum1

for k = 1:mbSize

grad_Wc2(:,:,j,i) = grad_Wc2(:,:,j,i) + conv2(o1Pooled(:,:,j,k),rot90(delta_c2(:,:,i,k),2),'valid');

end

grad_Wc2(:,:,j,i) = (1/mbSize)*grad_Wc2(:,:,j,i);

end

tmp_grad_bc2 = delta_c2(:,:,i,:);

grad_bc2(i) = (1/mbSize)*sum(tmp_grad_bc2(:));

end

grad_Wc1 = zeros(size(Wc1));

grad_bc1 = zeros(size(bc1));

for i = 1:filterNum1

for j = 1:mbSize

grad_Wc1(:,:,i) = grad_Wc1(:,:,i) + conv2(mbImages(:,:,j),rot90(delta_c1(:,:,i,j),2),'valid');

end

grad_Wc1(:,:,i) = (1/mbSize)*grad_Wc1(:,:,i);

tmp_grad_bc1 = delta_c1(:,:,i,:);

grad_bc1(i) = (1/mbSize)*sum(tmp_grad_bc1(:));

end

vel_Wd = mom*vel_Wd - r*grad_Wd - wdr*Wd;

vel_bd = mom*vel_bd - r*grad_bd - wdr*bd;

vel_Wc2 = mom*vel_Wc2 - r*grad_Wc2 - wdr*Wc2;

vel_bc2 = mom*vel_bc2 - r*grad_bc2 - wdr*bc2;

vel_Wc1 = mom*vel_Wc1 - r*grad_Wc1 - wdr*Wc1;

vel_bc1 = mom*vel_bc1 - r*grad_bc1 - wdr*bc1;

Wd = Wd + vel_Wd;

bd = bd + vel_bd;

Wc2 = Wc2 + vel_Wc2;

bc2 = bc2 + vel_bc2;

Wc1 = Wc1 + vel_Wc1;

bc1 = bc1 + vel_bc1;

mbErr = mean(delta_d(:).^2);

err = err + mbErr;

end

fprintf('Epoch %d Training error: %f\n',e,err);

r = 0.98*r;

end

cnnTest;

源代码为 github.com/yaolubrain/cnn_linear_max

matlab 524288,Cannot display summaries of variables with more than 524288 elements. 怎么...相关推荐

  1. 在Linux命令行下运行Matlab

    在Linux下安装完matlab后,会在/usr/local/bin/下生成matlab文件,可以使用matlab命令. Usage:  matlab [-h|-help] | [-n | -e]   ...

  2. format函数使用matlab,Matlab基本函数-format函数

    1.format函数:控制输出.显示格式 2.用法说明 format 缺省格式,同short.Matlab中常用的显示格式有: (1)format short表示5位近似定点数 (2)format l ...

  3. Linux x64 下 Matlab R2013a 300 kb 脚本文件调试的 CPU 占用过高问题的解决办法

    (1) 系统+软件版本 CentOS 6.5 (Final), 64 位,内核initramfs-2.6.32-431.5.1.el6.x86_64, MATLAB Version: 8.1.0.60 ...

  4. Matlab线性/非线性规划优化算法(1)

    在Matlab中解形如下式的线性规划问题: 其中包括优化对象 f' * x, 不等式约束,等式约束,以及约束变量的上下界. 在Matlab中提供了linprog函数进行线性优化的求解: eg: [x, ...

  5. format函数使用matlab,Matlab基本函数-format函数 | 学步园

    1.format函数:控制输出.显示格式 2.用法说明 format 缺省格式,同short.Matlab中常用的显示格式有: (1)format short表示5位近似定点数 (2)format l ...

  6. Linux环境下运行matlab以及执行m文件

    在Linux下安装完matlab后,会在/usr/local/bin/下生成matlab文件,可以使用matlab命令. 在命令行下执行: $ matlab -help 可以得到帮助文件: Usage ...

  7. matlab官方文档翻译之MATLAB 快速入门

    来源:https://cn.mathworks.com/help/matlab/learn_matlab/desktop.html 这个是从官方网站上一条一条翻译下去的,自己也是初学者在学习. Des ...

  8. matlab simulink相图,Simulink小问题集锦(转)

    命令行如何运行simulink外部模式build和start 用sim()函数 该函数的调用格式为: [t,x,y]=sim(f1,tspan,options,ut) 其中f1为SIMULINK的模型 ...

  9. Matlab生成棋盘格点图

    转自zhouyelihua**http://blog.csdn.net/zhouyelihua/article/details/46674191** 在摄像机标定过程中常常需要打印棋盘格程序,还有就是 ...

最新文章

  1. linux上传github项目
  2. latex二元关系符号
  3. MVC架构中,用户的请求简单梳理
  4. h.264 rtp打包
  5. Android学习之四大组件简单介绍
  6. c++使用单向链表存储一组有序数据_初试攻略丨计算机考研中数据结构知识点总结,硬核!...
  7. 有关ElasticSearch的基本概念
  8. scala学习-12-scala读取java项目下Src目录下的properties文件
  9. 开源一款超实用的 Dubbo 测试工具,已用半年,感觉很有feel~
  10. STM32采集电阻触摸贴膜
  11. Arcgis javascript那些事儿(十六)——GP服务的发布与使用
  12. 一个虚拟社交公司的融资历程
  13. 笔记--《谷歌和亚马逊是怎么做产品的》第一至三章
  14. Windows Server 2008 R2 Enterpris服务器上安装一个Moodle
  15. POJO和po,vo,bo
  16. 10款3D桌面推荐,很不错哦
  17. netscape.exe_评论-Netscape 6.1
  18. 大数据薪水大概多少_大数据工程师工资待遇一般多少?高吗
  19. mac 解压rar文件
  20. 阿里天池二手车交易价格预测(一)——EDA

热门文章

  1. LSF---【bsub命令】
  2. 【医疗人工智能论文】使用深度强化学习的腹腔镜机器人辅助训练
  3. SpringBoot - Tomcat 容器 Spring 绿色叶子灰色解决方案
  4. Registry私有仓库搭建及认证【转】
  5. 仓储控制系统(WCS)设计
  6. 21、关于破解点触的验证码
  7. java yyyy-mm-ddthh:mm:ssz,解析格式为YYYY-MM-DDTHH-MM-SSZ的ISO 8601日期时间
  8. 【趣文】秦始皇与区块链竟然有关系
  9. 苹果笔记本显卡性能测试软件,测试结果来了!新款Macbook Pro显卡性能怎样?
  10. 苹果新款笔记本_苹果自研CPU最快下月杀到 搭配史上最便宜Mac笔记本(全文)_苹果 新款MacBook Pro 13英寸_笔记本新闻...