资源简介

是博客https://blog.csdn.net/qq_35759272/article/details/109252165(2020研究生数学建模——大雾能见度估计与预测(E题)AlexNet深度网络解法)文章对应的程序。需要配合我之前上传的视频截图文件,可以在我的上传文件里下载,注意:此程序是在MATLAB2020a上运行,低版本的MATLAB运行不了,安装完MATALB2020a之后要安装alexnet.mlpkginstall文件,具体怎么安装看博客链接

资源截图

代码片段和文件信息

%% 本程序由博客凌青羽:https://blog.csdn.net/qq_35759272/article/details/109252165改写
%% 加载数据集
unzip(‘MerchData.zip‘)
%unzip 提取zip文件的内容
%Location = ‘E:\Image_Set‘;%使用自己的数据集进行训练
imds = imageDatastore(‘MerchData‘ ...%若使用自己的数据集,将其改为Location
    ‘IncludeSubfolders‘true ...
    ‘LabelSource‘‘foldernames‘);
%imageDatastore 图像数据的数据存储   /...续行
%   imds = imageDatastore(locationNameValue)
%   location-要包括在数据存储中的文件或文件夹
%   Name-相对组参数
%     ‘IncludeSubfolders‘-子文件夹包含标记
%          ture or false  | 0 or 1  (逗号隔开)
%          ————指定ture可包含每个文件夹中的所有文件和子文件夹,指定false则仅包含每个文件夹中的文件
%      ‘FileExtensions‘-图像文件扩展名
%      ‘AlternateFileSystemRoots‘-备用文件系统根路径
%       ‘LabelSource‘-提供标签数据的源
%             指定为以逗号分隔的对组,如果指定了‘none‘,则Labels属性为空。如果指定了‘foldernames‘将根据文件夹名称分配标签并
%              存储在Labels属性中 

[imdsTrainimdsValidation] = splitEachLabel(imds0.7‘randomized‘);%随机拆分imds中的文件,前70%放入imdsTrain中,剩余30%翻入imdsValidation中
%  splitEachLabel-按比例拆分ImageDatastor标签
%  [imds1imds2] = splitEachLabel(imdsp)
%       可将imds中的图像文件拆分为两个新的数据存储,imds1和imds2.新的数据存储imds1包含每个标签前百分之p个文件,imds2中包含剩余的文件
 
numTrainImages = numel(imdsTrain.Labels);%numel数组中的元素数目

%随机显示数据集中的图像
% idx = randperm(numTrainImages16);
% % randperm——随机置换
% %   p = randperm(n,k)返回行向量,其中包含1到n自检随机选择的k个唯一整数
% figure
% for i = 1:16
%     subplot(44i)
%     I = readimage(imdsTrainidx(i));
% %     img = readimage(imds,i)——从数据存储imds中读取地i个图像文件并返回图像数据img
%     imshow(I)
% end

%% 加载预训练网络
Alexnet_Train = alexnet;
%net.layers   %展示这个网络架构,这个网络有5个卷积层和3个全连接层
inputSize = Alexnet_Train.layers(1).InputSize;  
%  第一层是图像输入层,要求输入图像的尺寸为227*227*3 这里的3是颜色通道的数字

%% 替换最后三层
layersTransfer = Alexnet_Train.layers(1:end-3);
% Extract all layers exceptthe last three from the pretrained network
% 预处理网络的最后三层被配置为1000个类。这三层必须针对新的分类问题进行调整
numClasses = numel(categories(imdsTrain.Labels));%数据集中类的数目
layers = [
    layersTransfer
    fullyConnectedlayer(numClasses‘WeightLearnRateFactor‘20‘BiasLearnRateFactor‘20)
    softmaxlayer
    classificationlayer];
%    Transfer the layers to the new classification task by replacing the last three layers with a fully connected layer
%a softmax layer and a classification output layer. Specify the options of the new fully connected layer according 
%to the new data. Set the fully connected layer to have the same size as the number of classes in the new data. 
%To learn faster in the new layers than in the transferred layers increase the WeightLearnRateFactor and 
%BiasLearnRateFactor values of the fully connected layer.
%     通过将最后三个图层替换为完全连接图层,softmax图层和分类输出图层,将图层转移到新的分类任务。根据新的数据指定新的完全连接层的
% 选项。将完全连接层设置为与新数据中的类数大小相同。要在新层中比传输层更快的学习,增加完全连接层的WeightLearnRateFactor 和 
% BiasLearnRateFactor的值

%% 本程序由博客凌青羽:https://blog.csdn.net/qq_35759272/article/details/109252165改写
%% 训练网络

%用于数据增强,增加数据量
%    The network requires input images of size 227-by-227-by-3 but the images in the image datastores have different sizes. 
% Use an augmented image datastore t

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      15422  2020-09-22 19:57  2020研究生数学建模——大雾能见度估计与预测(E题)AlexNet深度网络解法程序(凌青羽)\alexnet.mlpkginstall

     文件      12413  2020-10-29 10:00  2020研究生数学建模——大雾能见度估计与预测(E题)AlexNet深度网络解法程序(凌青羽)\AlexNet_test.m

     文件   23449715  2020-09-22 21:42  2020研究生数学建模——大雾能见度估计与预测(E题)AlexNet深度网络解法程序(凌青羽)\MerchData.zip

     目录          0  2020-10-29 10:03  2020研究生数学建模——大雾能见度估计与预测(E题)AlexNet深度网络解法程序(凌青羽)

----------- ---------  ---------- -----  ----

             23477550                    4


评论

共有 条评论