Matlab CNN

本文详细介绍了深度学习网络的构建过程,从数据准备到网络结构的设计,包括输入层、卷积层、激活函数层、标准化层、连接层、去最大值层及分类层等关键组件。同时,提供了具体代码实现,展示了如何使用MATLAB进行网络训练和测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据格式

数据可以是ImageDatastore类型,也可以是4-D数组,四个维度分别是长度,宽度,通道数,第几个图片。

参数

输入层 imageInputLayer([imsize imsize 1])
卷积层1 convolution2dLayer(5,150)
激活函数层1 reluLayer()
标准化层 crossChannelNormalizationLayer(5,‘Alpha’,0.00005,‘Beta’,0.75,‘K’,1)
卷积层2 convolution2dLayer(3,300,‘Stride’,1,‘BiasLearnRateFactor’,2)
激活函数层2 reluLayer()
连接层 fullyConnectedLayer(1)
去最大值层 softmaxLayer()
分类层 classificationLayer()

回归网络最后一层必须是regressionLayer(),倒数第二层为全连接层。
对于回归网络,绘制根均方误差 (rmse) 而不是精度。

代码
%数据参数
[height,width,numChannels,~] = size(trainingImages);
imageSize = [height width numChannels];
numClasses = 10;

%结构
%输入层
inputLayer = imageInputLayer(imageSize);
%中间层
filterSize = [3 3];
numFilters = 32;
middleLayers = [ 
    convolution2dLayer(filterSize,numFilters,'Padding',1)
    reluLayer()
    crossChannelNormalizationLayer(5,'Alpha',0.00005,'Beta',0.75,'K',1)
    convolution2dLayer(filterSize,numFilters,'Padding',1)
    reluLayer()
    maxPooling2dLayer(3,'Stride',2)
    reluLayer()
    maxPooling2dLayer(3,'Stride',2)
    ];
%输出层
finalLayers = [
    fullyConnectedLayer(64)
    reluLayer()
    fullyConnectedLayer(numClasses)
    softmaxLayer()
    classificationLayer()
    ];
%各层合并
layers = [
    inputLayer
    middleLayers
    finalLayers
    ];

%参数
options = trainingOptions('sgdm', ...   
    'Momentum',0.8, ...
    'InitialLearnRate',0.001, ...    
    'LearnRateSchedule','piecewise', ...    
    'LearnRateDropFactor',0.2, ...    
    'LearnRateDropPeriod',8, ...    
    'L2Regularization',0.001, ...    
    'MaxEpochs',40, ...   
    'MiniBatchSize',128, ...   
    'Verbose',true, ...
    'Plots','training-progress');

%训练   
net = trainNetwork(trainingImages,trainingLabels,layers,options);

%测试
YTest = classify(net,testImages);

%准确率
accuracy = sum(YTest == testLabels)/numel(testLabels)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值