1、前言
最近AI相关比较火的,对于程序员,或者走这行的人来说,时刻跟进相关新的知识,还是需要学习一些东西吧,这可能也是程序员工资相对较高的原因,永远在学习的路上。
本篇是自己这一段时间学习总结,自己也还是一个新手,也在学习过程中。
而自己其实有意去看些资料,不过感觉很难,有点像大海中航行感觉,迷失了方向,不知道如何去学习,最近有点方向感,想着赶紧记录下来,自己的一些想法。
毕竟之前jetson-orin-nx有很长时间没有使用了,还是要用起来的,如下是买过jetson后应用的。
【在英伟达nvidia的jetson-orin-nx-工控机入门了解-自我学习-资料记录-熟悉了解】
2、思考前进方向
自己想要学习AI相关的时候,感觉很迷茫的,因为“AI”感觉太宽泛了,自己不理解,也不知道如何下手,那个时候,看到有关说明,就会存下来,不管有没有,其实就是蒙头盲撞的过程,看了很多概念,但也感觉云里雾里。
而自己的理解的AI,其实就像一个工具,有很多分支,你要找到,和你工作或者项目相关的工具,然后去使用它。打个比方,就像“电子”这个专业一样,下面有很多分支,你既可以去芯片设计源头的工作,也可以去做专门生产像“台积电”,也或者做电路设计,甚者去编写程序,都是各个分支。
如果你去英伟达官网,你回去看过这张图片,这个可以片面理解为AI相关工具,至于在你自己的领域如何使用这些工具,其实是你自己需要思考的事。
相关链接:https://developer.nvidia.com/downloads
对自己而已,之前做的工作是嵌入式相关的,jeton-orin-nx,其实有点像大一点,算力强很多的单片机,毕竟自己的工作中,还是会用到单片机,所以想用orin做些边缘算的事情,以此进入AI领域。
啰嗦的有点多,不过确实在盲目跟随AI热之前,你最好想明白为什么学习AI,以及如何应用它,这样才好有目标,不能为了学习AI,而学习AI。
3、学习路线
学习要有阶段和目标感,自己其实一点点摸索,确实并没有觉得会很多的感觉,但是大致在网上学习了一些,将其路线罗列些。
1、基础知识阶段
基础知识记录阶段,我们至少需要掌握一些基础的编程语法,比如,Python,自己听某位老师见过,Python被称为胶水语音,很多地方都能用上。另外就是要有一定数学知识,作为初学者,大学的课程可能不够用,不过当涉及某些问题的时候,可以现学,了解相关知识也是可以了,另外目前来说,大部分开发都还是linux系统息息相关,了解一些控制命令和指令,是必要的。
自己大学期间就是学习嵌入式相关,学习C语音,课余学习了点Python,所以多少还是会点的,后来学习了虚拟机,装过linux系统,多少有些基础知识。
- 学习基础的计算机科学知识:了解编程基础(推荐Python,因为它在AI领域非常流行)、数据结构和算法。
- 基础数学知识:特别是线性代数、概率论和微积分,这些都是理解和实现机器学习算法的基础。
- 操作系统基础:了解Linux操作系统,因为大多数嵌入式系统和开发工具都基于Linux。
2、初级准备阶段
初级阶段,就要求学习者有一定编程能力了,高深语法可以先不会,但是基础的循环和判定等要知道,至少看到一份代码,大致能看明白,作者的意图,想做什么,或者联系上下,明白这一行干了啥。另外就是要开始准备学习一些机械学习的基本概念。
- 入门Python编程:Python是学习AI的主要语言之一。您可以从基础的Python编程学起,包括变量、循环、条件语句、函数和数据结构。
- 学习基础的机器学习知识:了解机器学习的基本概念,包括监督学习、非监督学习、强化学习等,以及基本的算法,如线性回归、逻辑回归、决策树、随机森林和神经网络。
关于讲解基础机器学习知识,网上有很多资源,这里比较推荐吴恩达的课程,在Coursera上,国内需要借助一些工具。
相关链接:https://www.coursera.org/lecture/ai-for-everyone/machine-learning-5TPFo
当然是B站也有相关吴恩达视频,应该是录制下来的。
3、中级学习阶段
按照划分,自己应该刚刚在这个阶段,知道一些学习模型,正如前边所说,给你要解决的问题相关,选择你需要的工具,自己正在了解工具cuda,并且,要根据自己解决的问题,学习特定模型。
- 深入机器学习和深度学习:学习更复杂的机器学习和深度学习模型,包括卷积神经网络(CNN)、循环神经网络(RNN)、长短期记忆网络(LSTM)等。
- CUDA和并行编程:了解CUDA编程模型和基本的GPU编程,学习如何利用GPU加速计算。
比如自己,想尝试一个简单的demo,就是识别linux开机后,屏幕上是否有开机画面,这里自己了解到,需要使用模型>>卷积神经网络 (CNNs),这是用于图像分类和识别的最常见类型的网络。用CNNs可以用来确定一张图像是否显示了电脑的开机画面。屏幕要么开机,要么没开机黑屏,使用分类比较合适。
4、高级实战阶段
高级阶段就可以进行实战学习了,学习一些实际项目,了解整个流程,当然自己暂时每到这,后续到了会在细细说吧。
- 专项深入学习:选择一个特定的领域进行深入学习,比如自然语言处理、计算机视觉、无人驾驶汽车等。
- 项目实践:通过实际的项目来应用您的知识。比如,使用Jetson Orin NX开发一个简单的人脸识别系统或者自动驾驶的小车。
4、自我的努力
自己大学期间学过一些课程,常用语音确实不是Python,但是编译语音来说,是自己思维的延伸表达,能看明白代码,并写出自己需要的,也是可以的,或者边学边用。
- 获取设备:购买NVIDIA Jetson Orin NX开发板,自己之前买的开发板,就是想学习相关知识。
- 安装JetPack SDK:下载并安装NVIDIA JetPack SDK,这是开发Jetson平台必需的软件包,包括操作系统、库和API,使用相关工具,还是挺轻松的,比非jetson平台上安装,轻松不少。
- 实践项目:从简单的项目开始,比如使用摄像头捕捉图像并运行一个简单的图像识别模型来识别图像中的对象。
- 探索和学习:一点点学习吧,利用NVIDIA提供的文档、教程和社区资源来解决遇到的问题,并不断提高技能。
如下,一些学习文档,就需要常看了。
相关链接: https://docs.nvidia.com/cuda/archive/12.3.2/cuda-quick-start-guide/index.html
5、学习平台
网上有很多学习知识的平台,如果有能力,最好看第一手资料,如果不能,B站,慕课等等学习平台也是很多的。
- 在线课程:Coursera、edX、Udacity等平台上有很多相关的课程。
- 官方文档和社区:NVIDIA Developer网站、GitHub等平台提供了大量的官方文档、示例代码和社区讨论。
- 国内课程:B站,慕课和一些其他学习云平台。
- 项目和竞赛:参加相关的项目和竞赛可以提升实践能力。
如下,为B站一些截图,还是很多的。
相关链接:https://search.bilibili.com/all?keyword=AI%20yolo&from_source=webtop_search&spm_id_from=333.1007&search_source=5
6、自己总结
首先,自己简单地归纳了学习路线,这条路还是需要投入很长时间的,但是技术就这这样,研究它,才能感觉到其乐趣,同时要考虑如何使用。