****************
为什么关键变量都是四维的?——imageDim * imageDim * channel * numImage
matlab中%%会对代码进行分块,分块的代码会黄色高亮
matlab是按列搜索
matlab计时函数:tic; code...; runTime = toc;
pooledFeatures = zeros(convolvedDim / poolDim, ...
convolvedDim / poolDim, numFilters, numImages);****************三个点表示换行连接符
labels(labels==0) = 10;****************labels==0 表达式将返回labels中元素等于0的索引列表
images(:,:,:,1:6000);****************获取四维矩阵中:第四维1到6000的数据
struct('type', 'p', 'poolDim', 2);****************结构体:键值对
for i = 1:numel(cnn.layers)****************for循环,numel返回矩阵中的元素个数
randn(a,b,c,d)***************生成尺寸为abcd的四维的 标准正态分布的随机数 矩阵
mat = reshape(activations,[],numImages);****************将activations矩阵按列重新排列,使得结果矩阵的列数为numImages
convImg = bsxfun(@plus,convImg,bis);****************矩阵convImg和矩阵bis之间的每一个元素进行@运算,且能够自动扩维
imgMat(:, :, index);****************分号表示取全范围,这里取下标为index的图像
sumProbs = sum(probs, 1);****************对probs的列求和,得到一行求和数据
preds = preds';****************矩阵转置
filter = rot90(squeeze(filter),2);****************rot90将矩阵旋转180度;squeeze除去size为1的维度,将28*28*1*1转为28*28
conv2(im,filter,'valid');****************im为输入图像,filter为卷积核,'valid'表示有效卷积
https://www.cnblogs.com/hyb221512/p/9276621.html
ones(poolDim)/(poolDim^2)****************生成poolDim*poolDim的均值模板
index = sub2ind(size(logp),mb_labels',1:size(probs,2));*****sub2ind下标转索引:arg1:矩阵size;arg2:下标1集;arg3:下标2集