matlab 使用deeplearning Toolbox出现索引错误

笔者是用matlab2016、cpu、SAE方法进行mnist深度学习测试。

首先放一下问题,当用Deeplearning Toolbox工具包和SAE进行mnist数据训练和测试时出现这种情况,这是因为程序用的是原来matlab里自带的lmiunpck、nnsetup子函数,而不是Deeplearning Toolbox工具包里的函数,所以导致冲突。如下图所示:

matlab 使用deeplearning Toolbox出现索引错误

笔者搜集了一下,整理出以下解决步骤:

1 安装 deeplearning Toolbox工具包

在github上直接下载:https://github.com/rasmusbergpalm/DeepLearnToolbox

然后把安装包放到matlab的toolbox安装路径下,我的路径是:C:\Program Files\MATLAB\R2016b\toolbox

2 在matlab中添加刚才的路径,主页-设置路径-添加并包含子文件夹-路径。结果如下图。

matlab 使用deeplearning Toolbox出现索引错误

 3 再运行就ok了。

matlab 使用deeplearning Toolbox出现索引错误 

 matlab 使用deeplearning Toolbox出现索引错误

 test_example_SAE.m如下:

load mnist_uint8;
train_x = double(train_x)/255;
test_x  = double(test_x)/255;
train_y = double(train_y);
test_y  = double(test_y);

%%  ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN
%  Setup and train a stacked denoising autoencoder (SDAE)
rand('state',0)
sae = saesetup([784 100]);
% sae = saesetup([784 100]);
sae.ae{1}.activation_function       = 'sigm';
sae.ae{1}.learningRate              = 1;
sae.ae{1}.inputZeroMaskedFraction   = 0.5;
opts.numepochs =   1;
opts.batchsize = 100;
sae = saetrain(sae, train_x, opts);
visualize(sae.ae{1}.W{1}(:,2:end)')

% Use the SDAE to initialize a FFNN
nn = nnsetup([784 100 10]);
nn.activation_function  = 'sigm';
nn.learningRate =1;
nn.W{1} = sae.ae{1}.W{1};

% Train the FFNN
opts.numepochs =   1;
opts.batchsize = 100;
nn = nntrain(nn, train_x, train_y, opts);
[er, bad] = nntest(nn, test_x, test_y);
disp([num2str(er*100) '%error']);