目录
- 写在前面
- 一、先说清楚:什么样的项目适合新手
- 二、跑项目之前,先把环境这关过了
- 2.1 虚拟环境,这个真不能省
- 2.2 装PyTorch,先想清楚CPU还是GPU
- 2.3 下载慢,以及报错之后怎么办
- 三、正主来了:7个项目
- 3.1 ML-For-Beginners:先当地图用
- 3.2 scikit-learn:老归老,但它是合适的起点
- 3.3 动手学深度学习(d2l-zh):中文圈的宝贝
- 3.4 yolov5:第一个让你有成就感的CV项目
- 3.5 PaddleOCR:能干实事的中文OCR
- 3.6 transformers:大模型时代的门票
- 3.7 whisper:一个晚上就能用上的语音识别
- 四、跑通demo只是个开始
- 4.1 第一步:改参数,看变化
- 4.2 第二步:从入口文件读代码
- 4.3 issue区是个宝藏
- 五、练熟了,反过来给项目提点东西
- 六、一个8周计划,照着走
- 写在最后
写在前面
这篇文章其实拖了挺久才动笔。原因很简单,写开源项目推荐的文章太多了,一搜一大把。但大部分是那种罗列二三十个项目、每个两三行介绍的清单文。那种文章看着热闹,收藏的时候手一抖,点进去扫两眼,然后就没有然后了。收藏夹吃灰,项目一个没跑。
我自己是2021年开始正儿八经学AI的,之前写了两年Python。这五年里,GitHub上的项目前前后后跑过没有一百也有八十——这个数字没夸张,我自己的star列表都不敢细看,里面一大半是点了就再也没打开过的。踩的坑多了去了。
所以这篇我不打算写成清单。我挑了7个项目,每个都讲清楚三件事:它是干嘛的,为什么适合新手,我自己跑的时候踩过什么坑。也就是说,这篇的入选标准只有一条:我自己电脑上真实跑通过,而且我愿意把它推荐给一个完全零基础的朋友。
如果你已经能独立训练模型、发论文了,这篇对你太浅,可以关了。要是你还在“不知道该干什么”的阶段,那这篇就是写给你的。
一、先说清楚:什么样的项目适合新手
这一节我放在项目清单前面,因为它比清单本身还重要。
很多新手的路径是这样的:听说AI火,去GitHub搜"deep learning",按star排序,点开第一个,clone下来,然后对着README发呆。我当年就是这么干的。2021年年初,我克隆的第一个AI项目是tensorflow/models。clone的时候进度条跑了半天,下载下来一看,几百个文件夹,research目录下面套着十几层,我翻了半个多小时,愣是没找到程序入口在哪。
那个项目本身没毛病。问题是它压根就不是给新手准备的,那是Google放论文代码的地方。
那么,什么样的项目适合拿来学?我有个土办法,就四条。
第一条,README里有教程。不是“安装→API→完毕”那种文档,是有步骤、告诉你先干嘛后干嘛的那种。通常来说,维护者有没有认真写教程,直接反映了这个项目对新手友不友好。
第二条,issue区最近还有人回复。你跑不通的时候,十有八九能在issue里搜到一模一样的报错。要是最后一条issue是两年前的,你卡住了就真卡住了,没人捞你。
第三条,代码量别太大。一两万行以内的项目你能读个大概,几十万行的读起来就是受罪。这条不绝对,但大方向没错。
第四条,也是我最看重的一条:能比较快跑出一个看得见的结果。学习这个事,反馈特别重要。很多人从入门到放弃,就是因为头两个月一直在装环境、啃数学、跑没有输出的代码,大脑得不到任何正反馈。而一个下午就能跑出检测框、跑出识别文字的项目,会让你觉得,诶,这玩意儿是真能干活。
Star数反而不在这四条里。star多说明项目火,跟适不适合你学是两码事。有的论文项目star两三万,README就一段话加个论文链接,代码里注释没几行。那种是给同方向的研究者复现用的,不是给新手用的。
顺带说一句以后怎么自己找项目。平时可以翻翻GitHub的Trending,按Python筛;再就是搜“awesome + 主题”,比如awesome-cv、awesome-nlp,这种清单相当于别人替你整理好的索引。想追论文复现的,去Paper with Code。提醒一句,awesome清单别当教程用,它是目录,不是课本。看中了哪个,再拿我上面那四条去筛一遍。
二、跑项目之前,先把环境这关过了
我知道很多人急着看清单。但按我的经验,新手放弃的第一个高峰不在项目上,在环境配置。十个新手九个卡在装库这步,装着装着就去打游戏了。所以这节我多啰嗦几句。
2.1 虚拟环境,这个真不能省
先讲一个很多新手不理解的概念:虚拟环境。
大白话解释一下。你机器上的Python是全局共用的,而每个项目要的库版本又不一样。A项目要numpy的1.2,B项目要2.0,都装在全局里那就打架了,总得崩一个。虚拟环境就是给每个项目单独开个房间,各用各的库,互不干扰。
通常来说用conda就够了:
conda create-nai-demopython=3.10conda activate ai-demo第一行是建房间,第二行是进房间。以后你每次开新终端跑项目,都要先activate一下,不然东西就装到全局去了。我用conda用了很多年,中间试过venv又换回来了,没什么高大上的理由,就是习惯了。你要喜欢venv,python -m venv ai-demo也行,效果差不多。
2.2 装PyTorch,先想清楚CPU还是GPU
PyTorch安装是重灾区。重灾到什么程度呢,我认识的人里,卡在torch.cuda.is_available()返回False这一步的,能凑一桌麻将。
原因其实特别蠢。PyTorch的安装包分CPU版和GPU版,你要是随手复制了那条不带CUDA的命令,或者直接pip install torch(很多时候拉下来的是CPU版),那装出来的就是CPU版。CPU版当然没有cuda可用,所以返回False。代码一行都没错,是包不对。
所以装之前先确认自己有没有NVIDIA显卡。没有的话直接装CPU版,前期学习完全够用,跑跑MNIST、跑跑yolo的推理都没问题,就是慢。有的话,去PyTorch官网,选对自己的CUDA版本,复制那条带cu的命令。
装完验证:
importtorchprint(torch.cuda.is_available())输出True,恭喜,这关过了。输出False的话,先别急着改代码,pip list看一眼torch的版本号,带cu字样的才是GPU版。
再提一嘴显卡。我第一台跑模型的机器是台1060的笔记本,显存6个G,跑小模型还行,训yolo的时候天天爆显存。当时不懂,batch开到64,直接崩给你看。后来换了4090才算宽裕。这里想说的是:没显卡,或者显卡很弱,都不要紧,入门阶段九成的东西CPU带得动。别让硬件劝退你,这话我是认真的。
2.3 下载慢,以及报错之后怎么办
国内访问GitHub和PyPI,速度看运气。PyPI好办,换清华源:
pipinstallxxx-ihttps://pypi.tuna.tsinghua.edu.cn/simple或者一劳永逸把源写进pip配置,具体搜“pip 换源 清华”,到处都有教程,我就不贴命令了,免得你抄的时候跟你的pip版本对不上。
GitHub的clone慢,各种加速镜像换得很勤,今年好用的明年可能就没了。我的建议就一句话:搜"github 加速",用当下还活着的那个。另外不少项目在码云上有人做同步镜像,搜“项目名 + gitee”经常有惊喜。
最后补一个保命技能:装库报错之后,把报错信息最后那几行原样复制去搜,别自己盯着看。报错信息是写给搜索引擎看的,不是写给你看的。我带过的徒弟里,会搜报错和不会搜报错的,学习速度差出一倍不止。
三、正主来了:7个项目
下面的顺序是按学习曲线排的,不是按star排的。也就是说,你最好照这个顺序来,前面的打底,后面的上手。
3.1 ML-For-Beginners:先当地图用
项目地址:https://github.com/microsoft/ML-For-Beginners
微软出的教学仓库,26节课,从“什么是机器学习”讲起,回归、分类、聚类、NLP、推荐系统都摸一遍。每节课有插画,画得还挺可爱,讲解文档是现成的,课后还带小测验。
为什么把它放第一个?因为它几乎不需要你动手。clone都不用clone,网页上直接看。它的作用不是让你练代码,是让你知道这个领域里都有什么、彼此是什么关系。学AI最怕没有全局感,一头扎进某个细节里学三个月,抬头一看,不知道自己在地图的哪个位置。
我2021年那会儿还没刷到过这个仓库,全局感是啃书加到处搜博客拼出来的,绕了不少路。现在有现成的地图,先花两三天把26课过一遍,不用记住,脑子里有个目录就行。
用法总结:当地图用,别当教材死磕。看完知道机器学习大概分哪几块,目的就达到了。
3.2 scikit-learn:老归老,但它是合适的起点
项目地址:https://github.com/scikit-learn/scikit-learn
这个库2007年就有了,比我写代码的年头都长。很多人觉得它过时了——现在开口闭口大模型,谁还学sklearn啊。我的看法正相反:机器学习的地基就在这。你后面学深度学习会碰到一堆概念,过拟合、正则化、交叉验证、评价指标,这些在sklearn里都能用最小的代价摸一遍。上来就学深度学习,这些概念只能靠脑补。
它对新手友好到什么程度?API是统一的。分类器几十种,用法全是同一个模式:
fromsklearn.datasetsimportload_irisfromsklearn.model_selectionimporttrain_test_splitfromsklearn.ensembleimportRandomForestClassifier X,y=load_iris(return_X_y=True)X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)clf=RandomForestClassifier(n_estimators=100)clf.fit(X_train,y_train)print(clf.score(X_test,y_test))就十来行。核心动作只有俩,fit和predict。大白话讲,fit就是“数据喂给你,自己学去”,predict就是“新数据来了,猜猜是哪一类”。换算法的时候,把RandomForestClassifier换成别的,其他一行不用动。这个设计让你把精力放在理解算法差别上,而不是被每个库各一套的写法折磨。
内置数据集也是个贴心设计。鸢尾花那个load_iris,不用下载不用清洗,拿来就跑。你第一周的学习体验全靠它撑着。
接着再教一个我常用的把戏,用来直观感受“过拟合”这个词:
print(clf.score(X_train,y_train))print(clf.score(X_test,y_test))训练集上跑分和测试集上跑分,各打一次。训练集满分、测试集掉一截,就是过拟合的样子。鸢尾花这数据太简单,差距不会大,等你换了难一点的数据,train满分、test惨不忍睹的情况就会冒出来。这个画面看一次,比背十遍定义管用。
踩坑记录:sklearn的版本变动坑过我两次。一次是照着本老书抄from sklearn.cross_validation import train_test_split,直接报错说没有这个模块。查了半天才知道,cross_validation这个模块早就挪到model_selection里了。也就是说,你手里要是年头比较久的教程,导入语句基本都得自己修。另一次是波士顿房价,老教程人手一个load_boston,新版本里这个函数被整个移掉了,现在教材都用加州房价数据集顶着。所以碰上“教程能跑我跑不了”,先怀疑版本,print(sklearn.__version__)看一眼,再去对官方文档。
3.3 动手学深度学习(d2l-zh):中文圈的宝贝
项目地址:https://github.com/d2l-ai/d2l-zh
在线书:https://zh.d2l.ai
如果说这篇只能推一个,那就是它。李沐团队写的,书、能跑的代码、配套视频三件套配齐,而且是原创中文内容——不是翻译腔那种中文,是正常人说的话。
内容上,从线性回归一路讲到注意力机制和优化算法,深度学习的主干全覆盖。每章都是“理论+代码+讨论”,每节一个notebook,可以边看边改。
为什么它排第三而不是更靠前?因为它要你先把环境弄好、有点Python基础。前两个项目就是干这个的。
装库本身很简单:
pipinstalld2l==1.0.3版本号以书里安装那章为准,书更新过几个小版本。另外先别急着敲这行——d2l这个包只是个辅助库,提供画图和加载数据的函数,它依赖PyTorch。也就是说,PyTorch得先装好,回头看看第二节。装完把代码仓库clone下来,notebook一个个跟着走。
没显卡的话也别慌,Kaggle的notebook有免费GPU可以白嫖,书里不少章节的资源占用不高,前几章CPU都够。
这里我要多说两句,这是我这些年最想安利给新手的一个习惯:代码自己敲,别复制粘贴。
我知道复制粘贴很爽。但敲代码这个过程,手会强迫你的眼睛慢下来,你会真的看到每一行在干嘛。我自己当年就是粘贴党,d2l前面几章全靠ctrl c ctrl v,学到多头注意力那章突然就跟不上了。回头一看,前向传播那节的代码压根没进脑子。后来把前面几章重敲了一遍,地基才算补上。过程很枯燥,我懂。但它真的省不得。
配套视频去B站搜书名就有,李沐讲得有耐心,数学推导难受的地方他会说看不懂先跳过,对新手挺照顾。我的建议是视频和书穿插着来,视频看困了就敲代码,敲烦了回去看视频。
踩坑记录:一是显存,书里RNN调参那部分的模型在小显存卡上可能爆,batch调小就行。我那台6G的1060,当年就是把batch从256改到32才跑过去的。二是GPU版PyTorch一定装在虚拟环境里,别图省事装全局。别问我为什么连这个都强调。
3.4 yolov5:第一个让你有成就感的CV项目
项目地址:https://github.com/ultralytics/yolov5
前面三个偏“学”,这个开始偏“练”。yolov5是做目标检测的,输入一张图,输出框好的人、车、狗,什么都能框。
推荐它当第一个深度学习实战项目,就因为它满足我前面说的第四条,反馈快。跟着README走,十来分钟能看到结果:
gitclone https://github.com/ultralytics/yolov5cdyolov5 pipinstall-rrequirements.txt python detect.py--weightsyolov5s.pt--sourcedata/images/bus.jpg第一次跑会自动下载yolov5s.pt这个预训练权重,然后处理那张经典的bus.jpg,一辆公交车加几个乘客。跑完去runs/detect/exp文件夹看,图上画好框了,每框标着person、bus,还带置信度。
说个可能有点丢人的事。2021年我第一次跑出这个结果,盯着那张图看了五分钟,反复放大看那些框。就一张破图。但那种“我电脑里的程序真的认识人了”的感觉,比任何鸡汤都管用。学习这条路上,你就需要这么几个瞬间。
跑通demo之后,正确的下一步是训自己的数据。这是yolov5比很多项目友好的地方,整条流程它是通的:
- 装标注工具labelimg(
pip install labelimg,项目在 https://github.com/HumanSignal/labelImg ) - 准备百八十张图,别贪多,用labelimg框出要识别的东西。w键画框,d键下一张
- 写个yaml告诉它数据在哪、几个类别:
path:./mydatatrain:images/trainval:images/valnc:1names:['cigarette']- 训练:
python train.py--img640--batch16--epochs50--datamydata.yaml--weightsyolov5s.pt我第一次练的是识别烟头。当时接了个小活,客户要户外烟头检测,标了三百多张图,训出来效果马马虎虎。但整条流程走下来,你对“训练”的理解会完全不一样。数据怎么标、样本长什么样、什么叫过拟合——标完训完,这些词全落地了。
踩坑记录,这项目我坑踩得最多,捡几个大的说。
一是标注格式。labelimg能导出好几种格式,YOLO要的是每张图配一个txt的那种,坐标还是归一化过的。我当年不会切格式,标了两百张全是错的格式,重标一遍,心态差点没绷住。标之前先拿三五张图把全流程试通,这个教训值两百张图。
二是显存。batch开大了必炸。报错里带CUDA out of memory字样,就把batch改小,16不行改8,8不行改4。这不算失败,算常规操作。
三是先用官方的coco128.yaml把训练流程过一遍。这个yaml自带128张图的小数据集,跑一遍train,确认链路是通的再换自己的数据。出问题时你就分得清,是数据的事还是环境的事。
另外提一句。ultralytics现在的重心在YOLOv8/11那个ultralytics包上,yolov5仓库还在维护,但新东西都在新那边。入门我还是建议从yolov5走,代码结构对读的人友好,中文资料也最全。
3.5 PaddleOCR:能干实事的中文OCR
项目地址:https://github.com/PaddlePaddle/PaddleOCR
百度飞桨系的OCR项目。OCR就是从图片里抠文字,发票、截图、招牌、证件照都行。中文识别相当能打,毕竟是人家的主战场。
推荐理由很实际:这份清单里它“实用性”最强。yolo练完你是练了手,OCR练完你是真多了个趁手工具。我后来接的活里有一个批量整理扫描件的,就是PaddleOCR打底。这种学了马上用得上的项目,对坚持学下去帮助很大。
装就两步:
pipinstallpaddlepaddle pipinstallpaddleocr有N卡想快的话,第一条换成对CUDA版本的paddlepaddle-gpu,命令去官方文档复制,版本要跟你的CUDA对上。
Python里这么调:
frompaddleocrimportPaddleOCR ocr=PaddleOCR(lang='ch')result=ocr.predict('./test.jpg')forresinresult:print(res['rec_texts'])找张带字的图丢进去,出来就是识别出的文字行。第一次运行会自动下载模型,等一小会儿,正常。
踩坑记录,这条要重点说:PaddleOCR版本变动比较大。你现在装的是3.x,跟前几年博客里写的2.x接口对不上。老博客里满大街的ocr.ocr(img, cls=True)那种写法,在3.x里已经不是推荐用法了,现在走predict。我自己就被这个坑过——照着一篇讲得很细的老教程抄,抄到一半发现函数对不上,一度怀疑自己装错了。所以用这个项目,碰上对不上的地方,第一反应去看它GitHub首页的README,那是最新的,比任何第三方教程可靠。这个习惯你以后会反复用到。
还有一点,CPU跑OCR能跑,就是慢。单张无所谓,批量几百张的时候,CPU和GPU的差距一下就出来了。
3.6 transformers:大模型时代的门票
项目地址:https://github.com/huggingface/transformers
Hugging Face家的库,整个开源大模型生态的地基之一。你听过的那些开源模型,很大一部分发布时就带着transformers的权重格式,拿到手直接加载。
为什么新手要碰它?因为时代变了。我2021年入行那会儿,学AI约等于学CV,NLP是另一个山头。现在反过来,大模型是绝对中心,你迟早要跟它打交道。而transformers就是这个圈子里的普通话。
好消息是,它对新手有一扇特别友好的小门,叫pipeline,三行:
fromtransformersimportpipeline classifier=pipeline("sentiment-analysis")print(classifier("I love this movie!"))第一次跑会下一个小模型,然后它告诉你这句话是正面还是负面。没有训练,没有数据集,几行代码,你已经在用别人训好的大模型干活了。pipeline支持的任务还有文本生成、摘要、问答、翻译,都可以挨个试试。
坏消息,也是我的踩坑记录:pipeline不指定模型时,给你的是英文模型。我当年不知道,拿中文句子丢进去,不管我说什么它都判positive,我还纳闷了半天,以为这模型只会说好话。后来才反应过来,默认那个模型压根不认识中文。要处理中文,得去HuggingFace的model hub按任务搜中文模型,加载时把模型名传进去。model hub这个页面你以后会常逛,先混个脸熟。
另一个国内绕不开的坑:huggingface.co直连很慢,甚至连不上。走镜像:
exportHF_ENDPOINT=https://hf-mirror.comWindows的PowerShell下是:
$env:HF_ENDPOINT="https://hf-mirror.com"设完再跑,下载速度就是另一个世界了。模型默认下到用户目录的.cache/huggingface里,C盘紧张的话记得留意,动辄好几个G。
我的建议:入门阶段别贪。pipeline玩明白,知道“原来调大模型是这么回事”,就够了。微调那些,基础打牢了再回来。
3.7 whisper:一个晚上就能用上的语音识别
项目地址:https://github.com/openai/whisper
OpenAI开源的语音识别,对,就是那个OpenAI。音频丢进去,出文字,带时间戳,能直接出srt字幕。
它是这清单里上手成本最低的真家伙:
pipinstall-Uopenai-whisper whisper 测试音频.mp3--modelsmall--languageChinese前提是机器上装了ffmpeg,没装的话一跑就报错,报错信息里会提示找不到ffmpeg。Windows装ffmpeg稍微有点绕,官网下压缩包、解压、加环境变量,搜"windows ffmpeg 安装”跟着走,十分钟的事。
第一次用某档模型会自动下载。模型从小到大有tiny、base、small、medium、large几档,small的文件四百多M,中文识别效果已经能用了。我给视频扒字幕,常驻就是small。
踩坑记录:一是ffmpeg,上面说了。二是显存,large那档对显存有要求,卡不行就老实用small,别硬上。三是CPU也能跑,就是慢。一分钟的音频用CPU跑small,可能要等好几分钟,批量任务还是得靠显卡。
推荐它的理由跟PaddleOCR类似:实用。我用它处理过会议录音、扒过字幕、把网课音频转成文字稿。这种“学了当晚就能用上”的项目,是新手期最好的正反馈来源。
四、跑通demo只是个开始
这节写给已经跑通几个demo的朋友。跑通和学会之间,隔着一道挺宽的沟。收藏夹吃灰的那些人,往往就停在沟前面。
4.1 第一步:改参数,看变化
跑通之后别急着跳下一个项目。先干件小事:把参数改一改,看看会发生什么。
拿yolov5说。epochs从50改成5,看效果掉多少。置信度阈值从0.4改到0.25,看框是多了还是少了。img-size动一动。每改一次,想想为什么。
这个动作的意义在于,你会开始建立“参数—结果”之间的直觉。教程只能告诉你“这里填50”。你自己改过、看过结果,这个数字对你才是活的。我在调参上吃过甜头也吃过苦头——学习率手贱放大十倍,loss直接起飞回不来。那种画面看一次,你对“学习率”三个字的理解就深一层。
4.2 第二步:从入口文件读代码
参数玩明白了,下一步是读代码。别一上来就想把整个项目读完,没人是这么干的。
诀窍是从入口文件开始。yolov5的入口就是detect.py,从main往下读,看不懂的跳过,先把主干走通:图片进来,预处理,模型跑一遍,画框,保存。这条线通了,再看别的文件就不是一团乱麻了,你知道每个文件挂在流程的哪个位置。
读不懂很正常。我读transformers源码的时候,前两层就卡住了,全是装饰器和配置类。没关系,跳过去,抓主干。代码这东西,第一遍读目录,第二遍读流程,第三遍才轮到细节。通常来说,能把主干讲清楚,就已经超过大多数只会跑demo的人了。
4.3 issue区是个宝藏
最后一个习惯,知道的人不多:没事去你用的项目的issue区翻翻。
看别人怎么报bug,维护者怎么回,什么问题被反复问。你会学到两样东西。一是很多坑提前避开了,某版本的已知bug,issue里早就吵翻了,你还蒙在鼓里。二是你慢慢知道一个合格的提问长什么样:环境版本、复现步骤、报错全文,三样配齐。以后你自己提问,命中率高,也少挨喷。
五、练熟了,反过来给项目提点东西
这话题一般文章不讲,我觉得值得说说。开源不是单向薅。你用顺手了,可以往回给点东西,而且这事没你想的高不可攀。
新手能做的贡献,通常是这几种:
- 改文档错别字。真的,别嫌小。README里一个错字、一句过时的话,顺手提个PR改掉,维护者一般乐意合并。我第一次提PR就是改一个项目README的错别字,前后半小时。合并那天收到系统邮件,绿油油一个Merged,我高兴了一晚上。
- 复现issue。那些“求助,跑不起来”的帖子,你要是正好也碰上、解决了,把解法贴回去。这种回复对后来人价值极大。
- 补翻译。有的项目中文文档缺一块,有耐心就补一块。
这些事小归小,写进简历是真能打的。“给XX项目提交过文档修复”这一行,比“熟练使用XX”那种空话实在多了,面试官真会点开你GitHub看。我带过一个徒弟,非科班,靠一堆这种小贡献摸进了开源圈,现在在大厂做工程。路是通的。
提issue也有讲究。报bug前先搜一遍有没有人报过,别当复读机。发的时候环境信息带全:Python版本、库版本、显卡型号、系统,加完整报错。信息全的issue,维护者回得快,你问题解决得也快。
六、一个8周计划,照着走
前面讲得散,最后把这7个项目串成一条能执行的线。按每天挤出一两个小时算:
- 第1周:ML-For-Beginners过一遍当地图;同时conda环境搭好,PyTorch装好,
torch.cuda.is_available()出True(或者确认自己走CPU) - 第2周:scikit-learn,iris那套跑顺,换两三个别的分类器,同数据对比;train/test两个分数各打一遍
- 第3-4周:动手学深度学习,前几章代码全亲手敲,线性回归到softmax一带过扎实
- 第5周:yolov5跑通detect,再用coco128把训练流程过一遍
- 第6周:自己标百八十张图,训自己的检测模型,效果一般没关系,流程走完整
- 第7周:transformers的pipeline玩几个任务,whisper扒个字幕
- 第8周:回头整理,把踩的坑记下来,写成博客发出来
第八周那条我单独说一句。写博客这事我当年是被逼的——坑太多记不住,只好写下来。写着写着发现,能把一个坑讲清楚,才说明你真爬出来了。而且发出来的东西会被搜到。有个学生给我发私信,说靠我一篇环境配置的文章少折腾一晚上。那一下的感觉,比跑通demo还上头。这大概就是我做博主做到今天的原因。
对了,这计划里最重要的一条原则,再强调一遍:宁可一个项目多花时间,也别七个项目全过一遍水。深挖一个,你对“学习”这件事本身的理解都会变。
写在最后
一口气写了这么多,收个尾。
7个项目再点一遍名:ML-For-Beginners当地图,scikit-learn打地基,d2l啃主干,yolov5练手,PaddleOCR和whisper当工具,transformers开大模型那扇门。顺序按学习曲线排的,别跳。
最后说句实在的。8周走完,你不会变成“会AI”的人,离接活、面试都还有距离。但你会知道下一步该干嘛,手里有能跑的东西,收藏夹里每一篇教程你都知道该什么时候拿出来用。这个状态,比会背一百个名词重要多了。