(原创)适合小白的AI算法学习路线

大家好啊,我是董董灿。

之前写了一篇文章:有前途!大模型也需要AI算子开发岗!有同学看了之后,在问AI算子开发需要如何学习,有没有学习路线?

图片

图片

当然是有的了。

今天周末在家,就梳理了一下该岗位需要的技能以及学习路线。

需要说明的是,岗位技能的梳理,我默认的学习对象是没有编程经验和AI相关经验的小白,如果你有其中一部分的学习和工作经验,那就太赞了。

(本文原创,以下干货,谢绝转载,违者必究)
 

1、技能地图

图片

AI算子开发的技能地图,如果感觉看不清,可以放大图片来看。

2、学习路线

学习路线真的很重要,否则向无头苍蝇一样学了半天,没有反馈,会完全失去学习的动力。

根据我之前对这个岗位的了解,以及转行学习编程和AI算法的过程,我制定了下面的学习路线。

我把上面的技能地图中的内容揉在一起了,因为我们毕竟不像是大学中的课程学习,学C语言就只学C语言,学计算机基础就只学计算机基础,很多东西都是有交集的,一起来学,学的更快,领悟的更深。

多说一句,其实不光是AI算子开发的技能可以这么学,很多入门计算机、算法、AI 的同学都可以这么学。

我相信如果真的可以按照下面的路线全部学一遍,学会其中60%以上的内容,很多与AI相关的岗位,都可以达到基础要求了。这个时候,再增加一些实际项目的实践,分分钟就可以去面试了。

好了,话不多说,下面开始,如果你对其中的某一项比较熟悉,可以直接跳过。

1、C 语言破冰学习(基础中的基础)

1. 搭建 c 语言开发环境,完成一个简单的程序编写

2. 了解程序是如何在计算机上运行的,简单了解计算机的组成原理

3. 学习变量、常量的概念,简单完成一个常量和变量的基础数学运算的程序编写

4. 学习内存的概念,初步了解变量、常量都是在内存中存储的

5. 学习最基础的数据结构——数组,深入理解数组和一个单一变量的区别,数组和内存的映射。

6. 学习基础语句:判断语句、循环语句,switch 语句:完成一个包含0-9的数字的数组创建,并将偶数输出在屏幕上。

66. 学习神经网络中 relu 函数,完成一个 relu 激活函数的实现。

7. 学习函数:了解函数的概念,了解函数对于代码逻辑的封装的意义,将 6 中输出偶数的逻辑封装成一个函数来完成。

8. 破冰作业:利用所学的知识,编写一个高斯小时候就解决的经典数学题:计算1到100的和。

2、 C 语言进阶(指针)

1. 计算机存储原理进阶:了解冯诺依曼结构,深入了解内存结构,了解数据和指令在内存中的存储,了解内存对齐原理

2. 了解指针的概念,了解指针和解引用的概念,完成一个指针对一个变量的解引用。

3. 利用指针获取某个变量的值,完成一个简单的数学逻辑运算

4. 了解数组和指针的关系,将数组转换为指针,利用指针将破冰中的第 6 题完成

3. 简单了解C语言编译原理,如何将代码编译为二进制在电脑上运行。

4. 了解变量、常量、数组、函数被编译成的二进制指令在电脑上运行的概念,了解计算机指令系统:取指,译码。

5.了解函数调用与指令跳转的关系。

6. 了解结构体的概念,学会使用结构体

7. 深入了解了内存对齐后,在结构体基础上学习联合体(可选)

8 . 创建一个指针,直接读取内存中某个地址的数据,了解野指针的概念。

9.了解栈内存和堆内存的区别

10. 深入了解c语言 malloc 函数和 free 函数对于内存申请和释放的机制,简单了解操作系统对于内存管理的机制

11. 编程思维训练:利用已学的知识,完成一个斐波那契数列的输出。

12. 编程思维训练(难):利用冒泡排序完成一个数组的排序功能。

13. 深入了解在c语言中,万物皆指针的思想。

如果把c语言破冰和c语言进阶部分学完,学会其中80%,那么恭喜你,c语言已经入门了,并且可以利用所学的知识进行一些代码开发了。

这两部分在我目前看来,如果在看对书、找对资料、学习能力较强或者有人指导编程实践的前提下,集中学习,从零开始,大概一到两周基本就可以理解到位。

这算是较为基础的内容,后面的内容就会越来抽象,尤其是概念和算法。

3、 C++进阶

1. C++与C语言的区别:面向对象编程的概念,类的概念,会创建一个简单的类。

2. 类与结构体的区别和练习

3. 子类和父类的关系,继承的概念,重写的概念

4. 结构体在内存中的位置,结构体中的函数在内存中的位置

5. 类在内存中的位置,类中的函数在内存中的位置。

6.继承之后,子类和父类在内存中是如何存储的(虚函数表),有什么区别,继承的函数和重写的函数在内存中是如何存储的。

7. 了解C++中 new/delete 和 C语言中 malloc/free的区别和联系,学习智能指针的原理,学会使用智能指针。

8. 了解STL的概念,了解 std::vector 与数组的关系,以及两者在内存中的存储方式。进阶可了解STL中其他容器和算法。

8.利用C++编写一个复杂的类,完成类的学习(可找书籍、课程或找专人辅导)

学完C++进阶,基本上C/C++ 的入门就可以了。剩下的就是不断的去查找资料,扩充自己的知识范围,不断地去实践摸索。

4、 深度学习知识入门

1. 查找资料,学习了解深度学习与机器学习的概念和两者区别和练习,学习相关概念如训练、推理、神经网络、节点、前向传播、反向传播等。这些概念了解即可,否则在看一些文章的时候,可能不知道什么意思。

2. 学习利用工具查看神经网络结构图。如 resnet50 结构。查看一个神经网络是如何由一个个节点(算法)来搭建起来的。

3. 了解 tensor 的概念。也就是张量,这个概念要深入了解。

4. 以 resnet50 为例,学习常用的神经网络算法。建议查看万字长文解析Resnet50的算法原理有个感性认识。

5. 常用算法学习。卷积算法: 初识卷积卷积的核心原理,矩阵乘算法:矩阵乘,激活函数:激活函数,池化层:池化, softmax分类原理:softmax等。

6. 以上算法几乎是深度学习中最重要最常见的算法,学完之后,可以扩展学习其他算法如:dropout: dropout,交叉熵损失函数:解密熵交叉熵损失,归一化:批归一化,one-hot 编码:one-hot等等。

5、 计算机基础入门(硬件知识学习)

我个人感觉这部分不用学习的太深入,但是有些概念还是要了解的,可以参考硬件学习 来阅读学习。

除此之外,建议找计算机考研书籍和课程看一遍,把计算机底层原理搞透彻一些,这部分内容就没啥问题了。

如果需要资料,可以私信我。

6、 最后来一波实战

在完成了编程基础的学习、AI算法知识的学习、硬件基础的入门之后,就可以来一波实战了。

可以找一个实际的神经网络来练手,将神经网络中的算子都编码实现一遍,到此,100%就可以胜任 AI 算子开发的岗位了,甚至有更多AI的岗位可以选择。

比如如果你AI算法学的特别好,可以考虑AI算法工程师,做一些算法相关的工作。

比如如果你硬件知识特别感兴趣,学的很不错,可以做一些更偏底层的AI芯片岗位的工作,比如芯片验证等。

当然,任何岗位不是那么简单的学习就可以满足的,以上只是入门学习路径,更多的要靠个人不断实践摸索,才能成就大成。

那如何实战呢?

如果你没有好的项目来做,可以跟着我之前做的一个小项目来练手:从零手写 resnet50

图片

这个项目是从零开始,将 resnet50 的所有算法都手写了一遍,用C/C++和python两种语言来写的。项目可以正确的识别出图片的中动物:分分钟识别"十二生肖",我手写的神经网络大提速

图片

这个项目配合之前写的文章来理解算法,对于新手来说,是一个很不错的实战项目,如果全部理解清楚并可以将代码复现出来,真的可以写到简历上哦。

好了,就写到这,如果有同学想试一试,可以照着这个路线来学习,即使你现在是个小白,只要坚持下来,也会完成蜕变的。

有问题可以加我微信一起学习哦。

记住,生活不只眼前,还有诗和远方,加油。

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董董灿是个攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值