資源簡介
該算法內容介紹很詳細 算法步驟也容易看懂 在此分享給大家

代碼片段和文件信息
function?[cost?grad?preds]?=?cnnCost(theta?images?labelscnnConfig?meta?pred)
%?Calcualte?cost?and?gradient?for?a?single?layer?convolutional
%?neural?network?followed?by?a?softmax?layer?with?cross?entropy
%?objective.
%????????????????????????????
%?Parameters:
%??theta??????-??a?vector?parameter
%??images?????-??stores?images?in?imageDim?x?imageDim?x?channel?x?numImges
%????????????????array????
%??labels?????-??for?softmax?output?layer?and?cross?entropy?cost?function
%??the?labels?are?the?class?numbers.
%??pred???????-??boolean?only?forward?propagate?and?return
%????????????????predictions
%
%?Returns:
%??cost???????-??cross?entropy?cost
%??grad???????-??gradient?with?respect?to?theta?(if?pred==False)
%??preds??????-??list?of?predictions?for?each?example?(if?pred==True)
if?~exist(‘pred‘‘var‘)
????pred?=?false;
end;
theta?=?thetaChange(thetameta‘vec2stack‘cnnConfig);
%%======================================================================
%%?STEP?1a:?Forward?Propagation
numlayers?=?size(theta?1);
numImages?=?size(images4);
layersizes?=?meta.layersize;
temp?=?cell(numlayers?1);
grad?=?cell(numlayers?1);
temp{1}.after?=?images;
assert(isequal(size(images)[layersizes{1}?numImages])‘layersize?do?not?match?at?layer?1‘);
for?l?=?2?:?numlayers
????templayer?=?cnnConfig.layer{l};
????tempTheta?=?theta{l};
????switch?templayer.type
????????case?‘conv‘
????????????[temp{l}.after?temp{l}.linTrans]?=?cnnConvolve(temp{l-1}.after?tempTheta.W?tempTheta.b?templayer.nonLinearType?templayer.conMatrix);?????????
????????case?‘pool‘
????????????[temp{l}.after?temp{l}.weights]?=?cnnPool(templayer.poolDim?temp{l-1}.after?templayer.poolType);
????????case?‘stack2line‘
????????????temp{l}.after?=?reshape(temp{l-1}.after?[]?numImages);
????????case?{‘sigmoid‘‘tanh‘‘relu‘‘softmax‘}
????????????temp{l}.after?=?nonlinear(temp{l-1}.after?tempTheta.W?tempTheta.b?templayer.type);
????????case?‘softsign‘
????????????[temp{l}.after?temp{l}.linTrans]?=?nonlinear(temp{l-1}.after?tempTheta.W?tempTheta.b?templayer.type);
????end
????assert(isequal(size(temp{l}.after)[layersizes{l}?numImages])‘layersize?do?not?match?at?layer?%d\n‘l);
end
%%======================================================================
%%?STEP?1b:?Calculate?Cost
%?Makes?predictions?given?probs?and?returns?without?backproagating?errors.
if?pred
????[~preds]?=?max(temp{numlayers}.after[]1);
????preds?=?preds‘;
????cost?=?0;
????grad?=?0;
????return;
end;
switch?cnnConfig.costFun
????case?‘crossEntropy‘
????????numClasses?=?cnnConfig.layer{numlayers}.dimension;
????????extLabels?=?zeros(numClasses?numImages);
????????extLabels(sub2ind(size(extLabels)?labels‘?1?:?numImages))?=?1;
????????cost?=?-?mean(sum(extLabels?.*?log(temp{numlayers}.after)));
end
%%======================================================================
%%?STEP?1c:?Backpropagation
if?strcmp(cnnConfig.costFun?‘crossEntropy‘)?&&?strcmp(templayer.type?‘softmax‘)
????temp{l}.gradBefore?=?t
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????.......??????8029??2014-03-16?21:06??0000\cnnCost.m
????.......??????2619??2014-03-16?21:06??0000\cnnInitParams.m
????.......???????826??2014-03-16?21:06??0000\Dataset\MNIST\loadMNISTImages.m
????.......???????516??2014-03-16?21:06??0000\Dataset\MNIST\loadMNISTLabels.m
????.......???7840016??2014-03-16?21:06??0000\Dataset\MNIST\t10k-images-idx3-ubyte
????.......?????10008??2014-03-16?21:06??0000\Dataset\MNIST\t10k-labels-idx1-ubyte
????.......??47040016??2014-03-16?21:06??0000\Dataset\MNIST\train-images-idx3-ubyte
????.......?????60008??2014-03-16?21:06??0000\Dataset\MNIST\train-labels-idx1-ubyte
????.......??????1250??2014-03-16?21:06??0000\DebugTools\computeNumericalGradient.m
????.......??????2647??2014-03-16?21:06??0000\DebugTools\display_network.m
????.......???????679??2014-03-16?21:06??0000\DebugTools\grad_check.m
????.......???????733??2014-03-16?21:06??0000\DebugTools\samplePatches.m
????.......??????2647??2014-03-16?21:06??0000\DebugTools\thetaChange.m
?????文件???????3179??2016-06-02?09:16??0000\Demo\cnnTrain.m
?????文件????????794??2016-05-31?11:20??0000\Demo\config.m
?????文件???????1171??2016-05-11?10:34??0000\Demo\configTestGradient.m
????.......??????3133??2014-03-16?21:06??0000\la
????.......??????1403??2014-03-16?21:06??0000\la
????.......??????2525??2014-03-16?21:06??0000\la
????.......???????988??2014-03-16?21:06??0000\la
????.......??????3956??2014-03-16?21:06??0000\la
????.......???????231??2014-03-16?21:06??0000\la
????.......?????18026??2014-03-16?21:06??0000\LICENSE
????.......??????2108??2014-03-16?21:06??0000\README.md
????.......???????102??2014-03-16?21:06??0000\Testing\test.m
????.......??????1718??2014-03-16?21:06??0000\Testing\testGradCom.m
????.......????????93??2014-03-16?21:06??0000\Testing\testInit.m
????.......???????651??2014-03-16?21:06??0000\Testing\testThetaChange.m
????.......??????2538??2014-03-16?21:06??0000\TrainingMethod\minFuncSGD.m
?????目錄??????????0??2014-03-16?21:06??0000\Dataset\MNIST
............此處省略10個文件信息
- 上一篇:oA辦公系統源碼MyOffice
- 下一篇:員工管理系統數據結構
評論
共有 條評論