AI周边十一:我的深度学习的学习之旅

一、前言

今天突然心血来潮,想要简单讲述一下自己学习深度学习的过程。该文章也就不采用啥结构了,就是大概以时间为线索,记录自己在这一年多时间里的学习经历。

需要声明的是,本人是深度学习菜鸡一个,并不是大佬,本文并不想表达任何观点。如果我说的一些东西对你有一丝的帮助,那么我就很高兴了,哈哈!!!

二、正文

在去年的七月份,也就是19年的7月份,我参加完现在所在的研究生学校的夏令营之后,得知导师对我很感兴趣,而且我也基本上可以获得本科学校的保研资格,所以就开始接受导师的学习安排。因为我选的方向是深度学习的嵌入式应用,于是就开始了深度学习的学习之旅!并且导师告诉我,不仅要学习深度学习,还一定要学习好高级语言,如Python、C++。


刚开始学习深度学习的时候,真的是一脸懵,很多东西都不是很懂,比如新手都会经历的环境配置。我清楚的记得我当时配置环境配置了大半天,甚至长达一天,直到import torchimport tensorflow as tf成功。

我一开始学习的是mxnet,接触的学习教程是非常经典的 动手学深度学习,这本书的内容真的非常好,无论是深度学习的一些必备基础知识,还是一些常见的模型和它们的实例应用都可以在书中找到。后来这本书被翻译成了pytorch版本,所以我才算真正开始学习pytorch。我一开始学习的主要是:线性回归、softmax回归、感知机、权重衰减、过拟合/欠拟合、反向传播以及梯度下降这些必备知识。


学习了一段时间的深度学习的基本概念之后,我就开始重点学习pytorchtensorflow2.0的语法以及神经网络模型的搭建和训练。没事做做笔记,跑一跑书上或者网上找的代码,只要能不报错,看到模型输出结果就会很高兴。

然而模型也分很多种,我一开始学习的是回归模型卷积神经网络分类模型。后来随着学习的深入,陆续接触了目标检测模型、语义分割模型、人脸检测与识别模型以及生成对抗神经网络(GAN)。因为我主要学习的是计算机视觉方面的知识,所以上述模型都有所接触,但是之后使用模型的时候使用的最多的还是图像分类目标检测方面的模型。


在学习了pytorchtensorflow2.0的基本语法以及一些比较高级的语法之后,我开始有些迷糊了!因为它们都有很多的API,如果我自己不认真的总结一下,可能就很难实现自己动手写代码。我这里针对的主要是在用到某个功能的时候,你不知道去调用哪一个或者哪一类API,所以你在网上搜都不好搜。所以我当时想的是自己在那个阶段要至少知道一些常用的API它们大致是做什么的,然后在写代码的时候,我知道要使用哪一个或者哪一类,然后再去有针对性的搜索这个API应该怎么使用。

于是我就开始看pytorchtensorflow2.0官方API文档,看的时候刚好可以根据之前看的教程筛选一下一些比较常用的API,然后将它们大致分下类。大概花了一天的时间,我完成了上面所说的任务,自己总结在了一个word文档里,方便以后查看。


但是后来,又有了新的问题,那就是即使知道使用什么API,但是在实现比如获取数据集、搭建模型、训练模型等一些必须流程,又或者是迁移学习、保存和加载模型、动态调整学习率等一些也很重要的功能的时候,我到底应该怎么去组织代码?每个功能不止一种实现方式,不同框架之间实现方式自然也不一样,所以这些都是需要去总结的。至少对于我来说,如果我脑子里对这些东西不清晰,我是没有办法继续学习下去的。

于是我又开始了上述任务,花了几天时间总结了大部分内容,然后又在后续学习中不断添加新的内容,并且以博客的形式记录了下来。一是为了方便自己随时随地查看,还有就是也希望能帮助到其他人,万一有帮助呢是吧!!!在写博客的时候,我顺便也把一些常用API的具体使用方法,比如它的每个参数是什么意思,一点一点的记录了下来。当然这其中参考了很多优秀的资料。 上述所提到的内容我都写在了我的pytorchtensorflow2.0学习笔记专栏里,下面我把链接贴出来:


基础知识以及一些进阶的知识学得差不多了之后,我就开始准备多看一些实际的项目,写注释、或者根据自己的需要修改代码等等,争取多熟悉一些真实的项目。而且在实战的时候,也学到了很多知识,更新到了自己的学习笔记中。我这个人有强迫症,比较喜欢整理资料,所以我也就把看过的,比较好的项目都存在了文件夹里,哈哈哈!

AI周边十一:我的深度学习的学习之旅
可以看到,其中有图像分类、迁移学习、图像生成、风格迁移、人脸检测与识别、SSD目标检测。
AI周边十一:我的深度学习的学习之旅
可以看到,其中有yolov3目标检测、人脸检测、人脸识别、是否戴口罩识别、猫狗分类、语义分割、迁移学习。


当然学习计算机视觉的知识,怎么也避不开opencv,因此我也在学习过程中写了一些博客记录比较重要和常见的知识点,专栏链接奉上:OpenCV-Python学习笔记

三、总结

作为小白,该学的或多或少都接触或者学习了,当然还有很多很多的知识等着你去发现并学习。那么接下来你就要尝试自己去动手做一些项目,关于这一块我现在也就不说了,以后有机会再说吧!!!拜拜!!!

再次声明,以上就是自己心血来潮,也可以说是为了防止自己不清楚在过去一年都做了些什么而对自己的深度学习的学习之旅做的回顾,不想表达任何观点,溜了,溜了!!!(滑稽)