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

news2024/11/27 16:35:16

大家好啊,我是董董灿。

之前写了一篇文章:有前途!大模型也需要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两种语言来写的。项目可以正确的识别出图片的中动物:分分钟识别"十二生肖",我手写的神经网络大提速。

图片

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/764199.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pdf水印在哪里设置?超实用解决方法分享

在工作中,我们常常需要发送PDF文件给他人,为了保护文件的安全性,防止被他人盗用或篡改,我们通常会给PDF文件添加水印。添加水印可以有效地标识文件的所有权,并增加文件的可追溯性。然而,有许多人不清楚如何…

2023牛客多校第一场B Anticomplementary Triangle

①:有结论:面积最大的三角形即为所求 证明:若有点在面积最大的三角形对应 “ A n t i c o m p l e m e n t a r y T r i a n g l e ” “Anticomplementary Triangle” “AnticomplementaryTriangle”之外,一定能取得更大的面积。…

14款奔驰R400升级ACC自适应巡航系统,解放您双脚

有的时候你是否厌倦了不停的刹车、加油?是不是讨厌急刹车,为掌握不好车距而烦恼?如果是这样,那么就升级奔驰原厂ACC自适应式巡航控制系统,带排队自动辅助和行车距离警报功能,感受现代科技带给你的舒适安全和…

实时监测与报警,探索CMS系统在半导体设备安全管理中的作用

在半导体制造行业,设备的安全管理对于保障生产运行和员工安全至关重要。中央设备状态监控系统CMS(central monitoring system)是一种关键的解决方案,为企业提供实时监测和报警功能,有效应对设备安全管理的挑战。本文将…

【IDEA2023】解决IDEA中快捷键Alt+Enter不能引入局部变量

1、打开设置 File ➡️ Settings ➡️ Editor ➡️ Intentions 搜索refactorings,将Introduce local variable这个选项勾选上 将Introduce local variable这个选项勾选上 OK,Apply

怎么制作思维导图简单又漂亮?看看这几款常用模板

怎么制作思维导图简单又漂亮?制作思维导图可以帮助我们更好地梳理思路、整理信息。它可以让我们将复杂的信息变得易于理解和记忆,并且可以帮助我们更好地组织各种想法和概念。通过制作思维导图,我们可以更清晰地看到问题的本质,找…

3.Cesium中实体Entity创建(超详细)

前言 在学习 Cesium 的过程中,我发现官方文档冗长且阅读困难,为此我结合官方文档与自己的学习笔记,对其进行归类总结;本文中,我将介绍 Cesium 中创建实体的方法,并对其进行分类,帮助读者快速理解…

【中危】Apache StreamPipes <0.92.0 权限管理不当漏洞

漏洞描述 Apache StreamPipes 是一个开源的数据流处理框架。 Apache StreamPipes 受影响版本中由于 UserResource.java 中的 updateAppearanceMode、registerUser、registerService 函数未对用户身份进行验证,具有登录权限的普通用户可通过 {userId}/appearance/m…

火得不要不要的人工智能,SpringBoot实现人脸识别功能

需求分析 一、人脸注册 step1:人像采集。在注册页面上用html中video组件和js调用笔记本摄像头,并抓取人像图片。没有摄像头的笔记本、台式机的童鞋告辞吧,走好不送。。。 step2:人像上传至项目文件夹。将在页面采集到的人像数据…

TypeScript基础篇 - TS的Helloworld和环境配置

目录 ts-node(演示) src/hello.ts tsconfig.json(演示) tsconfig.json 小节总结 总结一 总结二 总结三 一张ai生成图 ts-node(演示) src/hello.ts // : number 【类型的标注】,add(x, y): number// 标注返回值为数字 f…

经验分享:多用户商城开发注意事项

互联网时代,电子商务已经成为了一种常见的购物方式。为了满足用户需求和提供更好的购物体验,越来越多的企业选择开发多用户商城。 什么是多用户商城呢?多用户商城允许多个商家在同一个平台上售卖商品,给用户提供了更大的选择空间和…

【Apifox】国产测试工具雄起

在开发过程中,我们总是避免不了进行接口的测试, 而相比手动敲测试代码,使用测试工具进行测试更为便捷,高效 今天发现了一个非常好用的接口测试工具Apifox 相比于Postman,他还拥有一个非常nb的功能, 在接…

使用Rational Rose(速成)

Rational Rose 用例图:Use Case Diagram 类图:Class Diagram 对象图:Object Diagram 组件图:Component Diagram 部署图:Deployment Diagram 顺序图:Sequence Diagram 协作图:Collaboration Diag…

Mysql数据库的管理

文章目录 一、数据库的基本操作1、登录数据库2、创建数据库并进入数据库3、查看数据库结构4、常用的数据库类型5、char和varchar的区别 二、Mysql数据文件三、SQL语句1、SQL语言分类2、DDL数据定义语言1.创建新的数据库2.创建新的表、查看数据表的结构3.删除指定数据表4.删除指…

2015年:筛选链表

3756. 筛选链表 一个单链表中有 m 个结点,每个结点上的元素的绝对值不超过 n 。 现在,对于链表中元素的绝对值相等的结点,仅保留第一次出现的结点而删除其余绝对值相等的结点。 请输出筛选后的新链表。 例如,单链表 21 ->…

Opencv入门必读知识

目录 前言 什么是Opencv? 0、预备知识 导入模块的方式 颜色空间 绝对路径与相对路径 国内镜像源 Python环境的安装 PIP命令下载第三方库 pip命令下载 Pycharm设置解释器下载 conda命令下载 pip不是外部和内部命令 1、调用Opencv的API (1&a…

数据库应用:MySQL备份与恢复

目录 一、理论 1.数据备份 2.完全备份与恢复 3.完全备份与恢复应用 4.增量备份与恢复 5.增量备份与恢复应用 6.使用脚本备份 7.日志管理 二、实验 1.完全备份与恢复 2.增量备份与恢复 3.使用脚本备份 三、问题 1.mysqldump报错 四、总结 一、理论 1.数据备份 …

2、算法好坏的衡量尺度

上一讲我们大概说明了数据在内存中的存储方式。这里我们说一下算法性能评价的角度。 我们说一个算法是否高效,一般会从两个角度来评价,即 时间复杂度 和 空间复杂度。 时间复杂度的计量单位是语句运行次数。常用的符号表示是O(x)。这里的x可以是不同的…

EXCEL里如何判断多个单元格/数据相等的小技巧

目录 1 问题:EXCEL里如何判断多个数据相等 2 错误方法 ABCD... 3 正确方法1 countif() 4 正确方法2: {and(exact())} 1 问题:EXCEL里如何判断多个数据相等 有时候,我们可能需要判断10个数据相等这时候写嵌套,或者…