一.简单介绍
本文主要介绍卷积神经网络中的一个经典分类网络—Alexnet。
1.1历史意义
拉开卷积神经网络统治计算机视觉的序幕;
加速计算机视觉应用的落地。
1.2思考问题?
- Alexnet网络结构及参数计算
Alexnet网络的构成,为什么是8层,哪里用了LRN,哪里用了Pooling Layer,6000万网络参数如何计算?
- Alexnet网络特色及训练技巧
Alexnet网络结构特色及关键操作是什么?训练技巧是是什么?包含数据增强操作吗?
- 实验设置和结果分析
如何设置网络超参数、学习率、batchsize等?如何进行实验结果对比分析?
1.3网络亮点
- 首次使用GPU进行网络加速训练;
- 使用Relu激活函数,而不是传统的Sigmoid激活函数以及Tanh激活函数;
- 使用LRN局部响应归一化;
- 在全连接的前两层中使用Dropout随机失活神经元操作,以减少过拟合。
1.4启发点
- 深度和宽度可决定网络能力;
- 图片缩放细节,应对短边先缩放;
- 强大的GPU和更多的数据可进一步提高模型性能;
- Relu不需要输入进行标准化来防止饱和现象,即说明Sigmoid和Tanh激活函数有必要对输入进行标准化。
二.基础理论部分
具体论文下载和理论知识可查看我的另一篇博客 https://zhuanlan.zhihu.com/p/377963267
大佬博客:
https://link.zhihu.com/?target=https%3A//blog.csdn.net/qq_24695385/article/details/80368618%3Fops_request_misc%3D%25257B%252522request%25255Fid%252522%25253A%252522162484658916780262539026%252522%25252C%252522scm%252522%25253A%25252220140713.130102334…%252522%25257D%26request_id%3D162484658916780262539026%26biz_id%3D0%26utm_medium%3Ddistribute.pc_search_result.none-task-blog-2allsobaiduend~default-5-80368618.first_rank_v2_pc_rank_v29%26utm_term%3DAlexnet%26spm%3D1018.2226.3001.4187
https://blog.csdn.net/qq_37541097/article/details/103482003
https://blog.csdn.net/weixin_44791964/article/details/102748770?ops_request_misc=%7B%22request%5Fid%22%3A%22162484658916780262539026%22%2C%22scm%22%3A%2220140713.130102334…%22%7D&request_id=162484658916780262539026&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-4-102748770.first_rank_v2_pc_rank_v29&utm_term=Alexnet&spm=1018.2226.3001.4187
三.网络实战
3.1 数据集准备
本文采用博主提供的花分类数据集,下载地址如下http://download.tensorflow.org/example_images/flower_photos.tgz
3.2 项目下载
项目下载链接:
https://github.com/WZMIAOMIAO/deep-learning-for-image-processing
3.3 开发环境搭建
Anaconda创建虚拟环境 编辑器pycharm 深度学习框架Pytorch python3.6
详细环境可参考我的知乎主页:
https://www.zhihu.com/people/shi-wo-89-57/posts
3.4 模型训练
- 在项目Test2_alexnet文件夹下创建新文件夹"flower_data";
- 将下载的数据集解压到flower_data文件夹下;
- 执行"split_data.py"脚本自动将数据集划分成训练集train和验证集val;
- 执行train.py文件 注意将数据路径修改为当前文件夹下;
- 生成AlexNet.pth权重文件 。
3.5 结果展示
- 利用生成AlexNet.pth权重文件 下载一张tulip.jpg照片用于测试;
- 执行predict.py文件用于测试。
结果展示图
由于水平有限,文章中难免会有一些错误,有纰漏之处恳请各位大佬不吝赐教!有任何疑问的小伙伴都可以私信,大家一起学习交流。