作为一个双非学校的人工智能硕士研究生,我在深度学习入门之初,学校里没人带,只能靠自己一点一点的摸索,走了很多弯路,因为自己并不懂得从哪里入手,从吴恩达的课到李沐的课等等无数种课,无数种书看了很多,买了很多,然后并没有学到什么有用的知识,反而越学越迷茫,在自己探索的过程中发现一个问题,网上大多数教程都是针对有一点深度学习基础的人准备的,类比Pytorch、Keras、TensorFlow的区别我之前都迷茫,不知道这究竟是啥,区别是啥,对于一个没有深度学习积累的课题组,全靠自己摸索的课题组,我想会让你学的很迷茫,什么是神经网络、什么是深度学习、什么又是目标检测、亦或者什么又是实例分割、什么又是语义分割等等,我们不得不承认深度学习是一门非常非常非常大的学科,如何在这门大学科里找到自己需要的东西则是我们这期博客需要研究的东西。
出这期博客的原因,我想在如此多的大学中本科生,亦或是研究生中存在一批跟我一样的人,大家并不想深入的研究深度学习或者卷积神经网络的具体概念,数学含义,更不想研究它的数学公式推导这么复杂的东西,我们只想能够首先根据自己课题或者项目的需要,简单的了解深度学习中的具体某个模块的知识,然后跟自己课题相结合,根据开源的代码进行改进,从而达到自己的需求即可,因此在看到网络一些讲解某个神经网络的一大堆公式推导我就头疼,毕竟我就是个小垃圾,并不想深入的了解公式推导的过程,就算是论文需要想要去了解公式推导了也只是具体的针对某个公式去了解,并不是直接这样跟我讲算法,我很难受。
好了,说了这么多废话,我只是想表达一个意思,我希望看了这期的博客,可以让像我这样的小菜鸡们可以直接知道从那个代码开始学习,如何简单快速的找到自己需要学习的模块,并且得到相应的代码进行学习。
当然深度学习是个很大的学科,本博客只负责针对卷积神经网络、图像处理部分的应用进行学习的规划。
简单了解深度学习的知识,这里我推荐吴恩达老师课程:【斯坦福大学】深度学习(全192讲)吴恩达_哔哩哔哩_bilibili
不用看完,只看到CNN图像处理的部分就行,看P1~P118即可,经典网络这里就行。
不用担心看不懂,对于小白来说,完全看懂是不可能的,我们只需要对于神经网络整体的概念有个大致的了解就行,不用纠结某个细节看不懂而焦虑,这很正常,刚开始学习一门新知识,我们无法去了解全部的东西,有细节的东西不懂很正常,不用焦虑,只需要对深度学习有整体的概念即可。
等你真正了解了,对于某个知识点需要去深入研究了,你再去深入了解,初期的学习就这样粗一点,有个大概整体的了解就行。
(另外特别提醒,这里有中文字幕,不用担心看不懂哦)
看完上面我推荐吴恩达老师的课,大家已经对卷积神经网络的图像处理部分有些简单的了解,那么我们现在就要针对具体的卷积神经网络案例,对卷积神经网络进行学习。我根据个人的经历,将深度学习神经网络的学习分为如下顺序:
(请按照先后顺序进行学习)
分类网络:Alexnet、VGG、Googlenet、Resnet、Densnet、Mobilenet、shufflenet、efficientnet系列等
检测网络:RCNN、Fast RCNN、Faster RCNN、YOLO、YOLOv3、YOLOv4、YOLOv5等
建议对分类网络的前三个网络学过了,再学检测网络,因为检测网络相对比较复杂,要有一定的分类网络的基础在对检测网络进行学习,至少需要把分类网络的Resnet学了,再进行检测网络的学习。
下面给出我个人写的相关的代码和浅层深度学习的讲解博客,帮助大家很快的跑通代码,并且置换成自己的数据集,从而运行自己的课题。(特别提醒,本代码全部基于Pytorch框架进行开发)
另外,基于我之前在网上找开源代码都没有绘制训练集和测试集的损失和准确率的图像的问题,小白又不会自己修改代码的情况,我的分类代码中都会自动绘制训练集和测试集的loss和accuracy。并且给出常用的模型指标计算代码,便于写论文!
首先需要配置自己的深度学习环境,如下给出全网最详细的深度学习环境配置教程,便于你很快的入门深度学习。
史上最全深度学习环境配置教程---适用于各种深度学习框架---Pytorh TensorFlow Keras-等和各种python环境_深度学习peizhihuanjing_小馨馨的小翟的博客-CSDN博客
1、Alexnet:
手撕Alexnet卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。_手撕经典卷积神经网络代码_小馨馨的小翟的博客-CSDN博客
2、VGG:
手撕VGG卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。_vgg 自己的数据集 pytorch_小馨馨的小翟的博客-CSDN博客
3、Googlenet:
手撕Googlenet卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。_小馨馨的小翟的博客-CSDN博客
4、Resnet:
手撕Resnet卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。_pytorch 替换自己数据集_小馨馨的小翟的博客-CSDN博客
5、Densnet:
手撕Desenet卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。_小馨馨的小翟的博客-CSDN博客
6、mobilenet系列:
简单有趣的轻量级网络MobileNets v1 、MobileNets v2、MobileNets v3(网络结构详解+详细注释代码+核心思想讲解)——pytorch实现_小馨馨的小翟的博客-CSDN博客
7、 shufflenet系列:
简单有趣的轻量级网络 Shufflenet v1 、Shufflenet v2(网络结构详解+详细注释代码+核心思想讲解)——pytorch实现_小馨馨的小翟的博客-CSDN博客
8、efficientnet系列:
简单有趣的轻量级网络 Efficientnet(网络结构详解+详细注释代码+核心思想讲解)——pytorch实现_小馨馨的小翟的博客-CSDN博客
9、Regnet:
RegNet——颠覆常规神经网络认知的卷积神经网络(网络结构详解+详细注释代码+核心思想讲解)——pytorch实现_regnet代码_小馨馨的小翟的博客-CSDN博客
10、Vision Transformer:
简单有趣的变形金刚网络(VIT) Vision Transformer(网络结构详解+详细注释代码+核心思想讲解)——pytorch实现_小馨馨的小翟的博客-CSDN博客
常见的猫狗数据集开源代码:
可以用来作为分类网络练手的网络。
kaggle猫狗数据集开源——用于经典CNN分类实战_小馨馨的小翟的博客-CSDN博客
常见的 Alexnet、VGG、Googlenet、Resnet迁移学习代码:
迁移学习篇之如何迁移经典CNN网络-附迁移学习Alexnet,VGG,Googlenet,Resnet详细代码注释和方法-pytorch_迁移学习代码_小馨馨的小翟的博客-CSDN博客
集成学习-模型融合(Lenet,Alexnet,Vgg)三个模型进行融合-附源代码-宇宙的尽头一定是融合模型而不是单个模型。_集成学习源代码_小馨馨的小翟的博客-CSDN博客
SE、CBAM、ECA注意力机制(网络结构详解+详细注释代码+核心思想讲解+注意力机制优化神经网络方法)——pytorch实现_小馨馨的小翟的博客-CSDN博客
数据集划分之训练集测试集代码:
【Pytorch代码学习】——数据集划分_pytorch划分数据集_"HelloWorld!"的博客-CSDN博客
论文写作常用指标计算代码(混淆矩阵、精确率、召回率等):
深度学习之卷积神经网络中常用模型评估指标(混淆矩阵,精确率,召回率,特异度计算方法)——python代码_卷积神经网络准确度一般看哪个_小馨馨的小翟的博客-CSDN博客
论文写作常用Grad-CAM激活热力图绘制代码:深度学习之如何使用Grad-CAM绘制自己的特征提取图-(Pytorch代码,详细注释)神经网络可视化-绘制自己的热力图_grad_cam 特征挖掘_小馨馨的小翟的博客-CSDN博客
数据集扩充代码:
深度学习数据增强方法-内含(亮度增强,对比度增强,旋转图图像,翻转图像,仿射变化扩充图像,错切变化扩充图像,HSV数据增强)七种方式进行增强-每种扩充一张实现7倍扩)+ 图像缩放代码-批量_深度学习数据怎么扩充_小馨馨的小翟的博客-CSDN博客
ML Visuals-逆天神经网络绘制神器还有暗黑模式-出于开源精神看到某些人非得积分才愿意提供下载的我在搞到之后决定免费开源出来_ml visuals下载_小馨馨的小翟的博客-CSDN博客
代码正在更新
RCNN:
RCNN算法思想简单讲解概述————(究极简单的讲述和理解)_小馨馨的小翟 rcnn_小馨馨的小翟的博客-CSDN博客RCNN目标检测算法内容详解(依托论文讲解)_rcnn论文下载_小馨馨的小翟的博客-CSDN博客
YOLOv1、v2:
Yolo算法检测之Anchor Boxes原理详解_yolo anchor box_小馨馨的小翟的博客-CSDN博客
YOLOv3:
目标检测系列讲解(三)之yolov3原理论文讲解_yolo3目标检测原理_小馨馨的小翟的博客-CSDN博客
常用的labelimg标注软件下载使用方法:
目标检测之——labelImg标注工具使用方法_labelimg可以实现自动标注吗_小馨馨的小翟的博客-CSDN博客
图片批量命名代码:
目标检测需要大量的数据集,存在命名冲突的情况,这个方法可以针对文件夹的名字对图片进行重新命名,便于构建数据标签。
深度学习之python给图片批量命名_python创建图像名称_小馨馨的小翟的博客-CSDN博客
数据增强算法讲解:
目标检测常见数据增强算法汇总讲解(Mixup,Cutout,CutMix,Mosaic)_mixup数据增强_小馨馨的小翟的博客-CSDN博客
YOLO中非极大值抑制方法讲解:
Yolo算法检测之NMS(非极大值抑制)原理详解_yolo非极大值抑制_小馨馨的小翟的博客-CSDN博客
目标检测类mAP等衡量指标的含义和计算方法:
目标检测类mAP等衡量指标的含义和计算方法_map指数_小馨馨的小翟的博客-CSDN博客
对于小白来说,按照上述进行学习即可,有问题欢迎随时给我留言评论,或者私信我,看到都会回复。
感谢支持!您的点赞是我前进的动力,终于肝完毕业论文了,后续目标检测类的代码和分类网络缺少的代码都会补上!冲