AlexNet于2012年出现在ImageNet的图像分类比赛中,并取得了当年冠军,从此卷积神经网络开始受到人们的强烈关注。AlexNet是深度卷积神经网络研究热潮的开端,也是研究热点从传统视觉方法过度到卷积神经网络网络的标志。
AlexNet模型共包含有8层,包含5个卷积层和3个全连接层,AlexNet相比于LeNet的特点在于,对于每一个卷积层,均包含RELU和局部响应归一化处理。
须设置数据集文件夹与神经网络的m文件地址相同,数据集文件夹命名为为TrafficLightSamples,其包含的子文件夹如下,每一类共有500张图片:
部分图片如下:
搭建网络的部分函数不在赘述,可以查看上一篇文章(LeNet)。
代码实现与详解:
1.加载图片样本:
% 功能:对AlexNet用样本数据进行训练,实现对输入图像的识别
clear
close all
clc
% 加载图像数据
imds = imageDatastore('TrafficLightSamples', ...
'IncludeSubfolders',true, ...
'LabelSource','foldernames');
'IncludeSubfolders',true:包含每个文件夹中的所有文件和子文件夹;
'LabelSource','foldernames':根据文件夹名称分配标签并储存在Labels属性中。
2.将样本划分为训练集和测试集,并统计分类数量:
% 划分验证集和训练集
[imdsTrain,imdsValidation] = splitEachLabel(imds,0.7,'randomized');
% 确定训练数据中需要分类的种类
numClasses = numel(categories(imdsTrain.Labels));
imdsTrain为训练样本数据,imdsValidation为验证样本数据,0.7为训练样本的比例。
3.构建AlexNet并进行可视化分析:
% A