• 大小: 11.08MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-26
  • 语言: 其他
  • 标签: CNN  

资源简介

这个CNN工具箱只用改一两个地方就可以对自己的数据集分类了 比github上的deeplearning的工具箱里的CNN改动要简单

资源截图

代码片段和文件信息

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

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-03-16 21:06  cnn-master\
     文件        8029  2014-03-16 21:06  cnn-master\cnnCost.m
     文件        2619  2014-03-16 21:06  cnn-master\cnnInitParams.m
     目录           0  2014-03-16 21:06  cnn-master\Dataset\
     目录           0  2014-03-16 21:06  cnn-master\Dataset\MNIST\
     文件         826  2014-03-16 21:06  cnn-master\Dataset\MNIST\loadMNISTImages.m
     文件         516  2014-03-16 21:06  cnn-master\Dataset\MNIST\loadMNISTLabels.m
     文件     7840016  2014-03-16 21:06  cnn-master\Dataset\MNIST\t10k-images-idx3-ubyte
     文件       10008  2014-03-16 21:06  cnn-master\Dataset\MNIST\t10k-labels-idx1-ubyte
     文件    47040016  2014-03-16 21:06  cnn-master\Dataset\MNIST\train-images-idx3-ubyte
     文件       60008  2014-03-16 21:06  cnn-master\Dataset\MNIST\train-labels-idx1-ubyte
     目录           0  2014-03-16 21:06  cnn-master\DebugTools\
     文件        1250  2014-03-16 21:06  cnn-master\DebugTools\computeNumericalGradient.m
     文件        2647  2014-03-16 21:06  cnn-master\DebugTools\display_network.m
     文件         679  2014-03-16 21:06  cnn-master\DebugTools\grad_check.m
     文件         733  2014-03-16 21:06  cnn-master\DebugTools\samplePatches.m
     文件        2647  2014-03-16 21:06  cnn-master\DebugTools\thetaChange.m
     目录           0  2016-05-31 11:28  cnn-master\Demo\
     文件        3179  2016-06-02 09:16  cnn-master\Demo\cnnTrain.m
     文件         794  2016-05-31 11:20  cnn-master\Demo\config.m
     文件        1171  2016-05-11 10:34  cnn-master\Demo\configTestGradient.m
     目录           0  2014-03-16 21:06  cnn-master\layer\
     文件        3133  2014-03-16 21:06  cnn-master\layer\cnnConvolve.m
     文件        1403  2014-03-16 21:06  cnn-master\layer\cnnParamsToStack.m
     文件        2525  2014-03-16 21:06  cnn-master\layer\cnnPool.m
     文件         988  2014-03-16 21:06  cnn-master\layer\nonlinear.m
     文件        3956  2014-03-16 21:06  cnn-master\layer\Test.m
     文件         231  2014-03-16 21:06  cnn-master\layer\TestPool.m
     文件       18026  2014-03-16 21:06  cnn-master\LICENSE
     文件        2108  2014-03-16 21:06  cnn-master\README.md
     目录           0  2014-03-16 21:06  cnn-master\Testing\
............此处省略6个文件信息

评论

共有 条评论