MATLAB第47期】基于MATLAB的多卷积层的卷积神经网络MCNN分类预测模型,含交叉验证,可自定义层数
一、展示效果
依次对比卷积层数为1/2/3时的分类预测结果
可得出,随着卷积层数量增加,训练集/测试集正确率基本上得到改进。
1.一层CNN
2.二层CNN
3.三层CNN
二、模型参数
%—输入--------------------------------------------------------------
%imgs:特征向量(高度x宽度x通道x实例) %label:标签矢量(实例x 1) %kfold:交叉验证次数 %LR:学习率 %nB:小批量数量 %MaxEpochs:最大Epochs数 %FC:完全连接层的数量(类的数量) %nC:卷积层的数量(最多3个) %nF1:第一卷积层中的滤波器数量 %sF1:第一卷积层中滤波器的大小 %nF2:第二卷积层中的滤波器数量 %sF2:第二卷积层中滤波器的大小 %nF3:第三卷积层中的滤波器数量 %sF3:第三卷积层中滤波器的大小
%—四分类数据-------------------------------------------------
res = xlsread('数据集.xlsx'); %% 划分训练集和测试集 temp = randperm(size(res,1)); imgs1 = res(temp(1: size(res,1)), 1: 12)'; label = res(temp(1: size(res,1)), 13)'; %—输出-------------------------------------------------------------
%—输出-------------------------------------------------------------
%包含以下7个结果的结构: %训练集平均准确率、最小准确率、最大准确率 %测试集平均准确率、最小准确率、最大准确率 %计算时间(s) %—CNN结构参数------------------------------------------------
%—CNN结构参数------------------------------------------------
options = trainingOptions('adam', ... % Adam 梯度下降算法 'MaxEpochs', 500, ... % 最大训练次数 500 'InitialLearnRate', 1e-3, ... % 初始学习率为0.001 'L2Regularization', 1e-04, ... % L2正则化参数 'LearnRateSchedule', 'piecewise', ... % 学习率下降 'LearnRateDropFactor', 0.5, ... % 学习率下降因子 0.1 'LearnRateDropPeriod', 450, ... % 经过450次训练后 学习率为 0.001 * 0.5 'Shuffle', 'every-epoch', ... % 每次训练打乱数据集 'ValidationPatience', Inf, ... % 关闭验证 'Plots', 'none', ... % 画出曲线training-progress 'Verbose', 1);
三、代码获取
后台私信回复“47期”即可获取下载链接。