大家好 相信有很多人现在正面临着大三考研 保研 不知道面试的时候如何和老师沟通的问题 亦或者 你可能是研0或者研一 导师交给你一个深度学习的项目 而你却从来没接触过 不知道该如何入门
本文将以一个初学者的角度分析如何入门深度学习 同时也是对三个月以来 学习路线的梳理
首先 认识深度学习
我不知道有多少人是被这个名字吸引过来的 反正我是 深度学习 听着是不是就比电机 嵌入式什么的高级一些呢 哈哈哈 言归正传 所谓深度学习
不过是神经网络的层数更多了 更深 所以在训练深度神经网络的过程 就叫做深度学习 没错 一个优秀的东西背后 总有一层华丽的外衣 那么神经网络又是什么呢 第一次听这个名字 还以为是在模拟人的神经元 但其实差的很远 一层又一层的神经网络不过是我们初中学过的线性方程 比如这里有两类东西 一类黑点 一类红点 我如何将这两类分来呢 一条直线 如果边界不是直线呢 那就用曲线 而训练的过程 也就是不断拟合这条曲线的过程 最终达到更好的分类这两种物体 说了这么多 我想表达的是 对深度学习去魅 现在的神经网络模型 不过是人类根据特定任务设计出来的 远远没有达到智能 而神经网络搭建和训练的过程也并没有那么高深莫测 正如一个又一个的积木 搭建成了一座高大上的神经网络宫殿 所以我推荐初学者首先学习一下基础的概念 在搭积木之前 你要了解这些积木都有什么 有什么作用
此处推荐吴恩达的深度学习系列课程
链接如下
【(超爽中英!) 2024公认最好的【吴恩达深度学习】教程!附课件代码 Professionalization of Deep Learning-哔哩哔哩】 https://b23.tv/PpkW3y7
需要课程中文笔记可以在我的主页自取
学习完这个课程之后 相信你会对深度学习有个基本的了解
第二 Python学习
首先来讲 神经网络的代码搭建过程 通常并不复杂 有的人就说了 我Python没学好或者说没学过 我要不要去重新学一下Python 这里我的建议是 都可以 为什么说都可以 因为就算你学了Python课程 很多东西也是用不上的 如果用不上 那学着干嘛呢 但如果你不学 你会在很多地方都不了解 知识也会不成体系 遇到不会的也要浪费时间查 所以我更倾向于重新学一遍Python 但我并不推荐市面上的Python教程 说实话 我觉得这是在浪费大家的时间 我推荐YouTube上mosh大佬的12小时Python课程 你也可以看b站搬运的中文翻译版课程 但翻译的不是很准确 大家自行选择
链接如下
【全球最强python教程–mosh大神的python从入门到精通-完整版来了 一共13节-715分钟-请谨慎观看!-哔哩哔哩】 https://b23.tv/MkxB9y4
你需要注意的是 不要只是看 完整的按照视频敲一遍代码 争取弄懂每一个点 这并不会增加你太长时间 相反 如果你只是囫囵吞枣的看一遍 我觉得你还是不要浪费这个时间 这没有意义
三 pytorch框架
pytorch这个词相信很多人早就听过了 我在刚开始听到这个词的时候 一直以为是一种新的语言 知道后来学了深度学习才知道是一种框架 什么是框架 就是别人搭建好的代码块什么的 比如说你想用一个卷积 你不可能从头开始写吧 这时候框架封装了已经写好的conv 你直接一行代码调用就好 又比如数据处理时 你需要裁剪图片 你使用框架只需要一行代码即可完成 框架的存在 降低了我们写代码的难度 以及确保了代码的整洁与规范 而对于pytorch的学习 你无需从头开始 你只需要在项目中进行学习
四 环境安装
这绝对是深度学习入门的一只拦路虎了 跑个深度学习项目安装十几二十个库这都是常事 许多人也被卡在了这一步 动弹不得 我还记得自己安个pytorch安了三天 中间还重装了一次电脑 具体说一下软件和环境安装流程吧
首先 学深度学习 可能同时学多个项目 各个项目用到的环境不同 你总不能都混在一起 然后各种库不兼容 最后弄得乱七八糟 自己也不知道该怎么办 放弃了吧 所以 我们需要安装anaconda或者miniconda这是包管理工具 并且自带了一些编译器 安装教程 看里面的对应章节
【Pytorch框架与经典卷积神经网络与实战-哔哩哔哩】 https://b23.tv/6tGm7o4
安装好之后 还需要安装ide 这包含了debug 高亮标注 自动补全等功能 绝对是一大助力 你可以安装vscode 或者pycharm vscode比较轻量 这里自行选择即可 安装教程 查看对应章节即可
【Pytorch框架与经典卷积神经网络与实战-哔哩哔哩】 https://b23.tv/6tGm7o4
安装之后 需要配置环境在ide中 也就是把conda环境导入到ide这里也是参照下面的即可
【Pytorch框架与经典卷积神经网络与实战-哔哩哔哩】 https://b23.tv/6tGm7o4
最后就是环境搭建了 你可以根据自己的需求搭建 还是参考这个视频 不夸张的讲 入门的话 看这个很有用 但仅限入门
【Pytorch框架与经典卷积神经网络与实战-哔哩哔哩】 https://b23.tv/6tGm7o4
五 基础网络动手搭建
在完成以上全部任务之后 你需要自己开始动手练习了 不然一切都只是纸上谈兵 这里我推荐的教程是 注意 我没有打广告 我只是真心觉得 这个视频讲解的很详细 也真的能帮助初学者 至于信不信或者你有更好的选择 那当然可以
【Pytorch框架与经典卷积神经网络与实战-哔哩哔哩】 https://b23.tv/6tGm7o4
如果你前面的知识都了解了 你可以从4.1lenet开始看 这是图像分类的开山鼻祖 非常经典 可以说这个系列里面的所有网络都非常经典 必须会 这是深度学习最基础的东西 对于视频内容的学习 其实不需要买他的代码 这并没什么帮助 只会让你偷懒 你需要跟着他的视频一下一下的照着敲 这会让你熟悉深度学习代码 了解pytorch使用 并养成良好的编程习惯 也会让你对深度学习训练基本过程有个了解
六 具体项目学习
在学习完以上之后 你就差不多已经入了深度学习的一道门 那么下面你需要干什么呢 选好自己要研究的方向 纵向学习 以目标检测为例 大家最熟悉的就是YOLO了 这也是难度最低的一个 大家当然可以从这个开始 首先从github上下载下源码 然后按照readme配置好环境 这里你可能并不会配置 b站上有超级多的教程 我就不一一列举了 跑通代码后 最直观的 你会了解这个模型是干嘛的 有啥效果 这就是你了解一个模型的动力与基础 你需要开始去了解模型的原理 结构 实现过程等等 最后将这个模型的核心理解清楚
七 阅读论文
光靠跑项目是不够的 要想了解最新的动态 掌握先进的算法结构 你需要不断的阅读论文 你可以找到近几年的顶刊论文如cvpr ieee等进行阅读 通过关联sota模型 你会逐渐了解更多的算法 阅读时 如果你要了解一个任务的大体算法 你可以阅读相关工作 以了解整个任务的解决动向 你可以先阅读摘要 引言 了解大概 如果你要了解细节 你需要阅读第三部分
八 学习其他工具技能
随着学习的加深 你会遇到各种各样的问题 最常见的就是 页面大小不足 这就是你的GPU显存不够用了 怎么办呢 换电脑? no 租个服务器算了 一张4090要一两万 虽然方便了 但是肉疼 这对于学生也是很大的经济负担 而在云服务器上一个小时才两三块 你可以按需求租用 具体来说 在云服务器上跑代码 这是作为一个student该会的 不然也会寸步难行 推荐两个平台 智算云霏 恒源云 大家都在用atuodl 但我觉得一般 贵且一般 关于如何在云服务器跑代码 可以参考我主页的文章或者在b站寻找
【小白如何租用云服务器跑代码-哔哩哔哩】 https://b23.tv/FbXi5RE
云服务器通常是linux系统 对于不熟悉的人来说 这也是一个难点 所以你需要学习Linux基本操作 你可以在csdn上找一找 或者参考我的主页里的文章 但我没更新完 我也正在学
你还需要学习的是docker git这些常用的 这对你的学习将会有帮助
九 up主推荐
首先就是
水论文的程序员 关注他 你不会走很多弯路的 但是 他说的话 你要辩证的看 不都对 比如他让你缝模块 这对吗 对 他说这里面的知识你一点不用了解 那肯定不行 就算是水 你也要懂一些的 此外关于工作环境的问题 我也只是学生 确实没什么发言权 但我坚信 这是最好的时代 成功与否 有一部分因素在你我手里 请抓好这部分
还有 学不会电磁场 噼里啪啦这些其中噼里啪啦应该是很厉害的一个up 学不会电磁场是一个研究生吧应该 也还不错 通俗易懂 也推荐一下 炮哥带你学 讲解的非常细 没学过深度学习的 看他没错 看似慢 但慢就是快 欲速则不达 差不多就是这些 还有很多优秀的up 不列举了
十 时间
以上这些内容学习完成大概需要两个月时间 以我本人为例 目前大三在读 前半学期因为课程任务较少 学习热情也比较高的情况下 每天学习十个小时左右 这中间走了很多很多弯路 debug 配环境也耗费了大量的时间和精力 但是两个月足够学完了 如果你也喜欢深度学习 那尽管去学吧 即使你什么也不会 什么也不懂 因为两个月之前的我也是像你一样