卷积神经网络matlab代码实例
时间: 2023-11-17 13:02:22 浏览: 109
以下是一个简单的卷积神经网络的Matlab代码实例,用于手写数字识别:
```matlab
% 加载手写数字数据集
load mnist.mat
% 将数据集分为训练集和测试集
trainData = double(trainData)/255;
testData = double(testData)/255;
trainLabel = categorical(trainLabel);
testLabel = categorical(testLabel);
% 定义卷积神经网络结构
layers = [
imageInputLayer([28 28 1])
convolution2dLayer(5,20)
batchNormalizationLayer
reluLayer
maxPooling2dLayer(2,'Stride',2)
convolution2dLayer(5,50)
batchNormalizationLayer
reluLayer
maxPooling2dLayer(2,'Stride',2)
fullyConnectedLayer(500)
reluLayer
fullyConnectedLayer(10)
softmaxLayer
classificationLayer];
% 定义训练选项
options = trainingOptions('adam', ...
'MaxEpochs',10, ...
'MiniBatchSize',128, ...
'ValidationData',{testData,testLabel}, ...
'Plots','training-progress');
% 训练卷积神经网络
net = trainNetwork(trainData,trainLabel,layers,options);
% 测试卷积神经网络
predictedLabels = classify(net,testData);
accuracy = sum(predictedLabels == testLabel)/numel(testLabel);
disp(['测试集准确率为:',num2str(accuracy*100),'%']);
```
该代码实例使用了MNIST手写数字数据集,定义了一个包含两个卷积层和两个全连接层的卷积神经网络,并使用Adam优化器进行训练。最后输出了测试集的准确率。
阅读全文