粉丝1903获赞1.9万


一天学一个变态的人工智能知识第一百一十七期这节课要讲的是对号选项目到跑通代码全流程避坑技巧,时长三十五分钟,看不完先收藏关注我,后续接着看大家跑开元项目是不是经常去打开这个号吧, 那么说打这个号吧当中第一件事干什么?我建议大家,就比如说咱们找到一个开元项目之后啊,咱不要说你上来干啥, 你上来直接就跑,先找什么?先去看一看啊?就人家这个大树是多少,人家这个放个数是多少,一般情况咱们干什么先找这些数量比较多的,找数量多的干啥?你可以这么理解,这就是比如说你上京东买东西,你上京东买东西啊,是不是第一件事你看销量, 那这个 style 树一定程度上决定这个东西有没有人用,用的人越多的,人家官方团队才可能去维护,人家才能可能去修复 bug, 以及大家反馈比较多。所以啊,就是先找优先 style 树高的。大家说什么叫高呢? 我举个例子,比如说一些大一点的开源项目,那可能一般得一 k 加一般。对于论文来说啊,论文大家可能作为领域不一样, 论文来说,我觉着比如哪个论文公开原码,他能有个一百加,我觉得都是有参考的。一百加以上说明这玩意还有人用,还是有可能几千个人在用啊?这件事你们先看,但是你要说四大数就是个位数的,或者说十十几个二十个, 我不建议去考虑,那玩意应该也是没啥影响力,应该大概率可能一堆错误,是不是?所以说首先先看这个,这是第一件事。 第二件事看什么?不要先看这个原码,因为你看其实咱们讲了很多看像,嗯,这里边我有一个习惯,我在看一个原码之前啊,我会想,我要花很多时间成本去调试这个东西,去列代码, 那这个项目可不可能本身有什么问题?怎么看本身有什么问题啊?大家看这一块,这块有一个很大几个字,叫什么?叫做一个 s 九, s 九其实是我比较喜欢看的,就是是别人提的一些问题,你可以当做,比如说你买个商品,你可能去看一个评价,是不是好点开搜看一下,在这里边啊, 你看点击之后它有一个 open, 有 个 close, open 就是 说还在提问呢,然后这个作者没有关闭 close 呢,就是作者已经关闭的,嗯,一般我不看 open 的, 我看 close 的。 一般 close 当中啊,大概率是有人回复的,然后作者肯定也回复了,然后就给它关掉了。我们点开来看一看这块,其实我们后续跟大家说报错怎么解锁关键词, 一般我建议大家这样一件事,先看一看其他人的说法,要是一堆人说这个项目狗屁不是的,这个项目跑都跑不起来,各种各样 bug 宣传不出来,结果也跟论文不一致, 赶紧干什么,及时止损,再去找另外一个项目。所以说建议大家首先去快速刷一遍, 你快去刷一遍时候怎么样?你有印象了,就是大概大家可能遇到什么问题,一会我万一报错了,环境组配的时候,哎,是不是可能干什么?可能我也会找到这个东西啊。嗯,那比如说第一个问题,我觉得作者需要在指明拍子版本以及更多的环境。哎呀,我看有没有回复的啊?没有回复,那我不看了,右边这边他就有回复几个,你再往下找, 你看右边都是有,有的是有一些人回复的,回复的不一定可能是作者,可能是谁,可能是人家就是个个路人,像你啊,像我啊,可能遇到这个问题了,像我,我经常,我经常就是,比如说我看到什么事,然后我跑个项目,然后我看到里边有人问其他的,就是 赠人玫瑰,手有余香的感觉,我就简单回一下,简单看一下,很常见。这里边你看这是,这应该就是个路人,这应该不是个作者,你看人家问了一个问题,在这里边数据集的一些选择,那别人知道会回复一下。所以我建议大家就是当你想去熟悉一个项目的时候, 第一步是先看这个 iso, iso 当中可让你能知道这东西值得去做,这是第一件事。第二件事,这个 iso 当中它可能会告诉你很多你没发现的事。那比如说我在做的时候呀,我说人遇到这个 bug, 那 我可能也有这个 bug, 我 没修复,那是不看人家怎么做都可以改过来。 好了,这给大家说。第二件事,看完 size 之后啊,先看这个 iso, 这个 iso, 你 看完之后,就有时候你看一些商品,那差评一大片的,你压根连买的欲望都没有了。所以说这个 iso 我 建议大家第二个去看, 第三个干什么?第三个看他的 readme 文档啊,我一般是后看 readme 文档,因为大部分 readme 啊,其实写的都还行,但是就像你们买商品,你们愿意看商品介绍吗?你们不愿意,你们愿意看评价,是不是?第三件事,我们再看这个商品介绍,商品介绍就这个 readme 文档,嗯,一般来说啊,能跑得起来的项目效果还凑合,能差不多点东西 一般写的得是相对来说挺多的,还有这个更新日期,然后还有呢,他的一些排行榜单, 还有呢,就是他啊,他这里边可能会对比实验用到的模型,人家的原码,人家的论文是什么?哎,你看挺方便,都给你执行好了,你想用这个对比实验,你想看人家论文,你想去引用,都给你列出来,是不是?哎,我觉得这又挺好的, 越权利格瑞德密,说明人家是越伤心这个事,越伤心这个事人家原码大概率也做越好,然后再往下,我们主要看一般就有这个 usage, 其实名字不一样,有的瑞币当中啊,就直接直接跟你说啊,你去跑什么模型,去做什么事,然后你看这块他说什么,他说那你要跑这个项目,人家原始论文作者,他用的是一个 python 三点八。那我问问大家,咱们看到这句话时候你会不会想一件事,你的 python 三点九,你的 python 三点一零能不能跑呢? 其实我跟大家说大概率是可以的,但是如果说你为了保险起见,咱们就新建一个环境,那我们就照这个例子给大家举个例子。我看到了人家三点八,要大家说那有的是开个项目,他也,他也没靠原版是啥呀? 你通过这个年份大概率就能猜出来了,但是你看这个年份,这个五个月之前,六个月之前,嗯,我好像够呛能猜出来 啊,一般五六月之前,那可能还是三点一二呢,可能三点一一呢,是不是?那我怎么才有三点八呢?这个你这个就不一定了,这个你可以看看 i 九当中的,也可以看看大概年份,没准能推断出来。没推断出来我跟大家没关系,基本上就比如拍套这个包,向下兼容还是很好的,我们都可以来试一试啊。 那这里边你看人家既然说了,人家既然说了他是三点八,那咱就办呗。来打开你的 any control permit。 这会咱们干什么?第一件事,我先新建个环境,新建个环境有个好处,别一会装一堆环境,把我自己的东西咱就全装乱了好不好?来,我们比如说 py 三八吧, 好,比较 p i 三八,比如说我们叫做 p y 啊,三八,然后叫 type net 啊,说一下这个项目名字要叫什么,然后呢,你去指定一下这个 python 版本,等于,然后三点八点零好不好? 然后呢,咱们去创建一个环境,这是第一步,我让他自己先去下载一个环境,我就跟这个原始论文作者一样吧,人用啥环境我就用啥环境。这第一件事,然后第二件事他可能说就是人家用这些包啊,我就用啥环境。这第一件事他可能说就是人家用这些包啊,我就用啥环境。这第一件事他可能说就是人家用这些包啊,咱们回来看 这块呢。接下来第二件事就是,你看啊,人家这个一般项目当中啊,都有,都叫什么?叫做一个 requirements 点 t i t, 这个一般都是作者会写的,他说啊,我用了什么样版本,你们最好跟我一样,因为有时候是这样的,就是比如说论文当中啊,你经常遇到一件事,比如说人家跑了个模型,人家效果挺好的,那我为啥跑了个模型,我效果变差了呢?嗯,这个东西很玄学, 你说能不能受这些排损版本的影响呢?能不能受这些工具包版本影响呢?甚至能不能受苦打版本的影响?嗯,我可以说都有可能这件事吧,解释不清。玄学东西啥都有可能,还有可能人家也随机转参数,那跟你也不一样。 所以说咱们为了保证近乎相同作伴,我们点开一下这个 request, 点 t i t。 简单先看一看。简单看什么? 就你看这个项目当中,人家也没说这个东西是 windows 去跑的还是 linux 去跑的,是不是?哎,但是一般情况下我们我会看几个包,我举个例子啊,就现在,比如说大家可能做很多大模型,是不是?好,我给大家举个小例子, 就这一个啊,就这一个。呃,来,我给大家举个例子,我给大家举个例子啊,哪个包来着?一会我们来找吧。我也,我也忘了哪个包不是这里边的,就之前有同学问我的,然后他那个包,然后我当时也看了很久, 然后后来我一查我就发现了,我真忘哪个包了,后来我一查,这个包只有 linux 能去用, windows 是 用不了的。所以说有时候你要看一看 这里边这些包啊,有没有是 windows 解决不了的,因为一般全是这样,就是 linux 能下能跑的东西。对,就那个分布式,那个东西就是 linux 下能跑的东西啊, windows 不 一定的,就是这个同学说的陈奕迅这个同学说的分布式的。就是我跟大家说一个前提啊,你找有没有一些分布式的包, 但凡是跟分布式相关的, windows 基本上来说是都用不了的。我们那大家说那 windows 用不了怎么办呢?自己租个服务器啊。租个服务器其实也没多钱,两块来钱一小时。现在,现在,现在租服务器很卷啊,你就租这个三零九零,我估计一块五。 以前我租的时候越来越便宜,我也不知道为啥,最开始我租的三零九零四块多,就刚出的时候,然后后来三块多,后来两块多,然后前两天我一看一块多。这东西很便宜啊,你可以自己租个环境跑两天都行的啊。好,这件事我们先看一下这里面有没有啥是温度不能用的,及时止损,别温度。就有朋友说给我磕了两天, 一发现有些包温度压跑不了。这个这个不多啊,但是但凡跟分布式相关的,这里面就挺多了啊。好,那我们看这个环境 来,兄弟们看环境是不是配好了很快啊,然后接下来我们去看他干什么?我去啊,激活下这个环境。呃,激活这个环境,然后我们叫什么名字来着? 我看一看叫什么名字我都忘了。叫这个 p y 三八, type p y 三八,然后 type net。 是 不是这一会我们可能会讲的一篇论文啊?好,那我们激活这个环境就是切换到这个环境当中,那下面干什么?我们是不是说人家这里边是给了我啥?人家这里边他是给了我这样一个 request, 那 我就直接装人家做的依赖环境。行了, 我的新环境直接装跟人相同版本的。那怎么做呢?这块咱们点这个 code, 我 们去下载。嗯,其实你们会用这个 get 命令啊,直接 get 命令也行啊,但是我估计大部分同学可能懒得装,尤其是 windows, 整不明白, 咱就手动下载,下载这个压缩包也行。下载压缩包之后啊,我们保存一下。保存到哪呢?随便找个地方吧。来,我保存一下,比如说就保存,我随便找个地方, 我找,我找一个我的路径。哎呀,我这个路径里面东西太多了,我找一找啊,我的拍唱在这呢,我保存到拍唱当中,然后二零二五里边,然后改个名字吧。改个名字好不好? type library, 然后保存一下。保存完之后呢,咱们自己解压一下。这个很快啊,来保存, 保存完之后呢,你看有这个文件夹是不是?然后呢?接下来我们给它解压出来完之后啊,我们稍等一下,这一块呢,我给它解压出来, 然后。哎呀,这里边我就替换吧,因为我之前解压过了,我今天直播之前我先试了一遍,我先别说啥问题,我先试了一遍,然后你看这里边我把压缩包删掉。咱们是有一个项目了,哎,这个项目完整的东西咱们现在是不能拿到手了。 好了,这是一件事,就是先把这个项目下载好,然后解压好。解压完之后呢,咱们进入到这个路径,我复制一下这个路径, 然后在这里边我进入到这个路径当中。进入完这个路径里边之后啊,然后大家帮我看一下。就你进入到这个路径当中之后,呃,我们看它这里边是不是有文件叫这个 requirements 点 t i t。 那 加么我说装备,你看我说 p i p install install 什么一排位引导杠 r 杠 r, 就是 装一个文件夹,里边指定所有包 requirements, 点一下回车,这回呢,它就自动地按照人家这个版本咔咔咔帮我装东西。呃,但这里我给大家说一个问题啊,就是人家有时候你比如说你看我点开完之后,点开之后,你看它这个 touch, 它一般会写版本号,但是你看比如这个 touch 一 点七点一,是不是它会帮我装这个版本?但是我问题是什么?嗯,就是它默认装的是个 cpu 版本, 然后他想说,那我他装了个 cpu 版本,那我自己要不要重新的去装一个 gpu 版本呢?是可以的啊,就是人家和你这个自己检查一下 人家一般情况下指定的 touch, 还有什么 touch word 那 个东西,它都是个 cpu 版本,那肯定你们是不要的,你们要 gpu 版本是不是重新的给他 p i p i n star, 然后下载完之后你自己再装个 gpu 版本就可以了。 好,那么稍微等一等这块呢?这块因为我是个新的环境,所以说他会装的包挺挺多的。嗯,但是也挺快的,我这个网速非常快啊,所以说他下东西很快,然后他接下来他就会批量帮我把这个包装好。 这样,其实我们现在就有什么这样,咱们现在是不是就手里有这样一个环境了?好,那我们现在第一步干什么?已经把卷板下载下来,已经按照一个方法去配置一个环境,然后再往下看,再往下研究,一般情况下会给你说,就是这里边干啥不是一个手动的手动安装,为啥要一个手动安装?如果说你在你之前老的环境里边,你可以一个手动安装, 但是我们刚才说了,咱们这里边干啥?我们这边人家不就是有一个指定的文件夹吗?这个一般一般大部分看一下吧,都会有这样一个叫 root 点 t i t 的, 这里边干啥?咱们直接偏僻 in star 这个文件啊,你们,你们如果忘了,回头看下录播,这时候该我指定了,你们还记不记我刚才命令了? 来给大家看一下刚才这个命令啊,你们记不住的,来拿手机拍一下,截个图,这这这里面自己百度搜,也就 p i p star 杠 r, 就是 按照一个文件夹要求,一般它叫这个名字 requester t i t, 这也包括了所有包的版本,我们就批量把所有的环境啊,所有的包都装好了, 装好完之后呢,接下来这样就可以了呀。对啊,这样就可以啊,然后再往下,再往下。其实我再跟大家说,你们自己去装一个套式 gpu 版本,这个我就给你们演示了,你们自己下啊,我们套式上树说过,就是比如说咱们自己手动下个点 w 十二文件,然后去装,你们可以装 gpu 版本啊。好,那我回来再看, 我们回到这里边,这里边他可能啊,就是有一些使用方法,你还到时候接来,你去春或者是评估这个模型的时候,你该怎么去做,然后但是大家来看这个命令,很多同学啊,之前看到这就蒙了,他说这个命令当中啊,他是一个 bash 啊,就是执行个什么脚本,然后什么点 a c 是 文件,他说这玩意 windows 也整不了啊,那我这是不就废了,这,这命令我执行不了, 执行不了这个命令该怎么办?我跟大家说下这个方法啊,来,咱们先,嗯,边打边说吧,我们刚才已经创好环境了,咱们在我们这个拍唱当中,我现在已经打开了啊,已经打开了这个项目,打开了这个项目之后呢,接下来 我们来看一下,简单的去浏览一下这个项目,然后啊,先看这里边吧,我觉得网页比较大,我就拿网页为大家再放大一点,但你看网页当中,他说呢,你这里边你想做这个长时间学预测,你该执行哪一个脚本文件?你想执行短序的预测,该执行,然后补全的异常检测的分类的,他是不每一个都列出来了 啊。然后我们举个小例子,比如说我们看这个短时吧,这个少腾啊,因为一会我们就演示这个,就是一会可能一般时间去列,还是这个短时作业比较多, 他是不是执行了一个什么点 s h 文件,大家说这咋办?我不是 delete 一 次,我也执行不了点 s h 文件啊,我跟他说咱们先找你看,他说啊,他说你在这个 script 里边儿当中有一个什么 short term 啊,然后 forest 一个预测,然后还有什么 type set m 四点 s h, 我 说我也不知道是啥啊,咱点开看一看,来,我们去找 找这个 sql 当中,然后按照人家这个要求短序列预测,然后再去找。哎呦我去,这东西太多了,我,我看一下,我记不住了,你要叫叫什么来着? times night, 然后 m 四点 a c h 是 吧? times night, 因为它这里边可以跑好多时间序列源码啊,这是它们在 m 四点。哎,来,你看这块儿, 我给大家对应一下,是不是有这样一个文件,咱们点开这样一个文件就可以了啊?好,然后咱们来去双击,你看现在我就点开这个文件了,这个点 c p n 当中啊,其实你不,你不用怕,说你这个温度执行不了他这里边脚本,他这边脚本大概率就是啊,先执行什么东西,后执行什么东西,我们手动去执行, 其实是都可以的啊。好了,接下来装 gpu 版本啊,太高。嗯,其实一般情况下 touch 是 向下兼容比较好的, 但是一般跟人家一样,一般是跟人一样是最好的,这样可能你复制出来结果你就不会去怀疑是环境导致的还是代码导致的,因为有时候大家你们自己去盘代码时候效果比较差,你自己都懵,你别说你懵,我也懵, 我盘之后我也纳闷,就这玩意为啥效果差?我也不知道啊。那你最好跟人环境一样,那起码我们就能分析其他东西了,控制变量法呗。来,你再看这块,这块你看一下,就是他这一块说了,他说他说你要运行的时候,你要执行这个转点 p y, 然后下面他是给你解解释一些参数是不是?所以说你别看他这个点 s h 文件挺唬人的,里边就是干啥,就是一个让你用 python 执行什么东西。好,那我去找他说呢,现在用这个 python, 但是你们每个开玩笑吧,可能不一样的,不是说所有开玩笑吧都会给你点 s h 文件, 有很多。开玩笑,我会告诉你直接执行什么文件,大概率会告诉你直接执行什么文件啊?这两天这块他说让你去执行这个软点批歪,那我找一找呗, 找到这个 run 点 p y 是 不是啊?这块有个 run 点 p y 是 吧?哎,我找到了,然后呢?他这里边说,他说你在执行的时候啊,你需要指定这些个参数,是不是?好,那我是这样,我先把所有的参数都复制下来,你看这要求所有参数是不是。好,那我来试一下啊,我也不知道能不能跑成功,然后我们,哎,然后还没切换环境, 咱们看我这拍唱当中啊,拍唱右下角,咱们是不是可以去切换这个环境?来,我举个例子,你看我右下角,咱们点开,然后我们去点这个添加一个环境,添加时候选择这个已有的环境,因为这是我 kindle 当中咱们自己创建的 已有环境当中。接下来咱们去找找一下我们新安装好的环境,然后选中他的拍森点 es, 然后呢?接下来我们点这个, ok, 可以了,下面他会读这个进度条,这个进度条如果说你装了一个新的环境,里边包是比较多的,他可能进度条加载的比较慢,但是我这里边包比较少,所以说加载比较快啊,他毕竟是新环境,老环境一般加载比较慢啊。好了,然后再往下,再往下,你看这个转点偏爱当中啊,人家刚才不是说吗?去执行这个,然后他让你去选一些参数,是不是? 好,那这样咱们来去啊,现在还不能转,你看现在还不行,是不是?这块我们稍微等一等,因为你这个进度条啊,还没有加载完,这个这个进度条加载完了他才能去执行这个东西啊,这块还不能配置,那我们那我们 这里稍微等一等,这块他就比较慢了,你看他在一点点加载来看,哎呀,他不用我,我记着啊,他是不用全加载完,然后他就可以去执行了,你看我一直点,其实啊,全执行完之后 稍微等一等吧,他确认完之后啊,就是他会有一个配置,那个命令参数人家在这里吧。大家可能说,哎,人家为什么要直用这种方式呢?人家为什么不把什么拍照的参数给你指定好呢?为什么还要用脚本的方式点 s h 去执行呢?我跟大家说解释一下,为什么。 就是一般情况下,比如说你想去跑实验,很少说在你本机去跑,大概率都是连你的福气啊,比如说你们学校是不是都有福气啊,你们公司是不是都有福气啊?就没准在自己本机上去跑这些东西。因为一般情况下,比如说我们工作的时候,我们自己就是公司就发一个笔记本, 其他所有东西都在服务器上去跑,那我们是不是要连到服务器当中?连到服务器当中大概率是没有。这些面向窗口的都是用什么,都是自己写一个脚本,把菜单写好丢上去直接跑了。 所以说人家开玩笑吧,他也是,他也是为了这样的方便给你们去准备的,不是为了故意难为你们啊。好了,那我们找开这个 run 点 p y 让我们右键,你看有了是不是来,你看我点这个 run 点 run 说他肯定直接跑不起来,他跟你说现在有些错误,是不是?来,别着急啊,在任务当中我们先配置下这个参数,先把参数也配置好,就这一块我们去执行这个 run big 这个东西,然后刚才我是不是要复制一下子了?来,我把我刚才拿的复制过来,你看这不咱输入复制所有参数啊,然后对齐一下啊,来对齐一下。 哎呀哎呀,我看一下,给它复制过来,然后呢,我稍微调整这块前面空一些空格,没关系,空格其实没关系的,然后这样吧,咱们复制完之后,咱们点一下, ok, 点 ok 之后呢,我们来点一下转,看看结果怎么样啊?肯定是有很多报错的。哎,他说现在, 他说现在呢,不认识一些你的面料参数,一堆杠,哎,我看看怎么会有一堆杠呢?你看再点开,再点开这个东西啊,你发现发现就是你复制完之后,实际执行完的时候, 他给你多添加了一个东西啊,他说有一对杠没识别,是不是咱手动给删掉,来把这个杠删掉啊?因为刚才的杠这样写后面是没事的,但是我不知道为什么他给我自动放前面去了,一执行好,那我就删掉,不需要这个杠啊,好,都删掉,每一个杠我都给他删掉,删掉完之后呢,咱们再来去执行,然后看他再给我提示什么东西啊,来 一个个删他这些默认参数。我先不管啊,因为你想去理解这个参数,你就要在原码当中咱们一个个去看了啊。我底 bug 这个操作就给大家讲过很多了,但是我们一般还是很少说从零开始配环境,我就给大家演示一遍,然后点这个, ok, 然后我们再点这个乱, 再看题是什么,他说什么,然后我们就照样去做,哎呀,他说有个 key i, 嗯,我给大家看一下,咱们一点点分析啊,遇到报错没关系,我们来简单分析一下,他说有个 key i, 他 说没有这个,呃,没有这样一个字典当中啊,可能缺少一个东西,呃,貌似这个东西没有啊,那咋办呢?哎,那我得想 这个貌似这个东西他是干什么的,为什么没有呢?那我们简单来分析一下,你看一下这里边啊,就是其其实这个东西啊,我问大家,就是大部分同学,你们一眼就能看出来是不是? 是不是大家一眼就能看出来?他说这里边好像缺啥东西,是不是这个 max 当中他多了一个引号,反而发现他是多了一个引号啊?那还有些同学,他说接下来他不知道这东西怎么办,他说我看不出来这里边是多了一个引号,少了引号咋地呢?我们在这里边大家注意啊,我们可以打成个断点,是不报错了,我打成个断点, 打出了断点完之后呢?我的 bug, 我 只想到断点这,然后我看一看行不行啊?来只想到断点这,我看一下。他在这里边,他说这个任务当中,你看我们传进来是什么?我们传进来的给大家看我们传进来的啊,我给大家截个图, 你看一下我,我在这画个图吧,因为我这 bug 有 点小啊,你看我一传进来这个东西,它是不是啊?它是不是一个,哎,它是不是一个? 一个引号完里边还有个引号啊?还好像感觉多了个引号,我也不知道为什么多一个引号。那我再看一下人家这里边,你看人家这个字典当中啊,我记得应该是个字典吧?来,你看人家这个字典当中他是不是,是不是有一些 key 啊?这些 key 当中。来,我再给大家看, 你看这个 key 当中他有什么?他这个名叫什么?他这个名字跟我们下面这个名字一对比,哎,你发现发现,一对比完我给大家画起来,画一条线吧,你看咱们一对比咋样?一对比我一发现, 我这里边怎么多了个引号呢?人家这里边他是不是没有?他就是就一个引号,我这边两个引号,那感觉我的字幕串多了东西,所以他找不到,是不是 啊?所以说遇到问题不要不要怕啊,就是很常见的一个事,咱干啥遇到问题咱们就到那个断电,那我们去看一看他可能什么问题。哎呀,那我得找。哎,我说你这个变量是在哪来的呢?我又看了下代码, 这个代码当中啊,他说你看,他说是这个在什么你这个 x 当中,哎,这个 x 刚才不是我写的命令行参数吗?他说你指定的命令行参数当中啊, 这个名字你肯定指定错了,因为找不到咱们多一个引号,哎,那我回来看一看,我回来看一看,我这个命令行参数我们找啊,因为我刚才复制的,我连看都没看,我也不知道这里边是啥我连看都没看。我找你看,我找到这块来,我给大家看 这里边来,他是不是有,你看他这里边是不是多了一个引号?那刚才人家脚在那有这个引号,那我也不知道为啥他要有这个东西,到时候改对行不行?因为人家是那个那个命令行里面去执行,你是在拍上面去配,所以说有区别啊,那咱们也改对,我去掉这个引号是不是就可以了?好,那接下来我们再点这个 ok, 点 ok 之后呢?我们再去运行 一个报错一个报错,去看呗,别着急。好,然后接下来他给我执行,哎,他给我一执行的过程当中,我又发现他又出现了一个东西,他又说了一个 keyid, 他 说 keyid 当中啊,他说有个什么叫 model name, 哎,他前面还有到了,还有还有一个什么什么特殊符号,哎,我说这个特殊符号是什么,然后我一看这个报错,他又是我这个配置文件当中,他说你配置文件当中啊,这个 model, 这个 keyid 什么意思?那绝对就是说这个 model 他 没有加载到,那肯定这个 model 名字写错了, 那我们再看一下,我再右键,我点开来看,我看我这个 model 写的是啥呀? model, 来我们找。哎呀,大家来看这块,这个 model 当中啊, 他给的是这样一个名字,这个名字是啥?我也不知道啊,那我们看咱俩复制的这个东西,咱们刚才是不是在我这个点 s, 点 s 选项当中,我就点开了,然后我一看,我看人家写的就这玩意啊,那,那咋办? 你不要忘记人家写的就这玩意啊,那,那咋办?你不要忘记人家是直接引用上面那个 times night。 所以说咱们这要干什么来?我又发现一个问题啊,我说桌上没改,我把这个他们的给它复制过来,然后接下来呢,我们重新再配置一下,在这里边,你把你刚才啊选中的这个 model name 改成软件父的名字啊,来,咱们再点, ok, 让我们再去执行, 再去执行的时候啊,我们再来稍微等一等,哎呀,然后他又,他又告诉我一件事,他又报错了,他说现在这个 touch 啊,软件是,他说现在你的 touch 啊,没有这个库达,因为我是 p i p store 软件 requirement 点 t i t 默认什么默认装置?是那个 cpu 版本儿, 这里边两个方法就是一般情况下你们直接换 gpu 版本能解决的。那我跟大家说,如果说你没有 gpu, 你 找 cpu 包怎么办呢?咱们去找,咱们去找啊,人家这个这些参数当中啊,一般情况下是有的,比如说你看这一块,这是不是有一个参数 叫什么?叫做这个 race 啊? use gpu 默认什么?默认是个处,哎呦,我说默认处,我改成个 false 好 不好?我先看一下命令参数当中啊,我们配不配这个参数? 命令行参数当中,我现在大概一看,大概一看咋样?哎,好像没配这个参数,那我直接改吧。如果说我想用 cpu 去跑,那我就直接把这个东西给它改成一个 false 是 不就行了?让我们再点这个 run 再运行,反正就是执行开一项吧,那你肯定抵遇到一堆报错是不是?你看这块写了又是 cpu, 我 给它放大一下, 你看他说现在在用这个 cpu 跑,是不是?那我们稍微等一等,看看会不会报错啊?所以说遇到报错,我觉得这很正常啊,然后大家可以学会一个方法,你看咱们之前讲了很多的 bug 的 方式,通过 bug 咱们来去屡呗。基本上大家说啊,就是我总花时间去配环境, 花这个时间值不值呢?嗯,其实我跟大家说是挺值的一件事。为什么?积累经验啊?你想想以后你的工作,你的工作大概率要做什么?大家说我要搞底层,算下来开发啊,这个机会少之又少,大概率是套开源东西,跑自己的东西。 你们公司迭代很快啊,基本上来说,那你需要大量配环境,大量立业这些东西,所以说遇到环境的配置问题,我觉着练手是挺好的啊,越配越多,越配越熟练。然后他又给我提留报错,哎呀,我也看一看吧, 他给我提个报错,他说,呀,这一块啊,这一块什么涝,涝损损失的时候他说一个软 type, 什么东西?呃,软 type 什么意思啊?就什么东西为空了。这种情况下,一般来说就是可能你的数据啊,数据没有读到,可能有这个可能,再比如说你调用了什么函数, 这个函数他这个函数没有定义,也是有这样一个可能的。那我,我不知道咋办啊?我,那我,你看,这么看谁能知道啊?咱们点开点,到这之后呢,我们给他打上一个断点, 打上断点之后咱们还是右键,我们去抵 bug 到这来看一看,他跟我提示说什么为空了,那我就抵 bug 到断点。这我到底看一看,你到底是谁空了?数据空了我们就顺着往前捋,在哪读的数据啊?是不是路径给错了?为啥会空啊?是不是?好,我们就着这个事往前去捋啊,别着急 来,别着急,我们再往前去捋,然后这一块我们再做的 bug, 其实这一块我还要还少说给大家说一件事,就是什么?就是这一块其实人家还要让让你去下一个数据集的第二步,第二步这个大家自己去下一下, 他说了,就是他说你把你这个数据集啊下载好,他给你提供了一个谷歌或者百度网盘,然后让你呢下载到这个点编辑的文件当中,因为这个下的比较慢,所以说我是事先啊自己下载好了,已经放到这个位置当中了啊,这里面看一看,人家要求你的数据怎么获取啊?数据放入文件夹啊啊,你都可以看一看, 或者在命令当中当当命令行参数当中去找,人家可能发现什么位置了。好,那么回到这里边,这里边你看人家说给我报个错,是不是?我找找呗,我一般先看这个,先看数据, 这个 pitch x 我 现在不知道是啥,但是往手上一放,我说你有值啊,这个呢?这个我说你也有值啊,这个呢?哎,这我说你也有值啊,这个你有值啊,这个你有值啊,每个值都有哎,但是我一看这个东西,来,兄弟们,你看我这块,哎呀,我说好像发现了一个东西,怎么真的是一个空的呢? 来,大家看这里边,这里边他是不是有个东西,他跟我说什么 nan type, 什么东西,我把手上一放,他说是空的。那大我我,那我不一想这是啥东西吗?我也不知道啥东西啊,那我来找一找, ctrl 点进去好不好?我发现了这块呢,他是有一个函数的定义,你看这块函数定义,他这个函数定义干什么? 他说呀,要在我这个参数当中去选择一个损失函数是不是?好,那我看,我看一下,比如说我这个参,我看你怎么去选这个损失函数。他说呢?你这个 list name 不同的一个 last name 等于啊,不同的啥?不同的 last name 选不同的损失函数,这是我定义好的,那你看人家这块说 if 选了个什么东西? else if else if else if。 那 我大概率就能猜到了,肯定是我,我,我给的一个损失函数 没有包括在这些里边当中,所以他先返回是要空的。你,你猜这么猜对不对?哎呀,那我得想我为啥这要空的呢?我看这这里边 mse mpe mase, 那, 那我的损失函数是啥呀?来,我找一下我的损失函数在哪来着? 哎呀,我我我这跑哪去了?这个代码我找一下,我找一下,咱们该这个来,我,我去搜一下,来,咱们找到。你看这一块,这是我的损失函数,我把鼠标往这一放,我再给大家来看,你看我的损失函数又出现了一个问题,还是我刚才复制的,我复制完之后我连看都没看啊, 你看这损失函数,他又多了什么?他又是多了一个引号,是不是?哎,他叫 s m a p e, 我 先不管这损失函数是什么,其实你看我在这个代码当中,这里边 是不是有这个 s m a p 有 这个损失函数啊?它是有实现的功能啊,但是由于我的名字给错了,所以说现在找不到,所以它返回是个空的,所以它报错了。好,那我们回来,回这边我们看呗,我们找一下,找一下这里边。哎呀,我说看这最后损失函数是不是又多了个引号,我也没看这个东西,那我给它改对好不好?让我们再点这个, ok, 然后接下来我们再去转, 一步一步去看。让大家说我配个开源项目,然后这么多错误吗?嗯,这还是很少错误的,这还是很好的项目的。他没让你改代码呢,有很多开源项目还需要你改代码的,还需要你?就是我跟大家说啊,就是报错能解决的问题 真的都是小问题,什么问题最难跑出来结果差?那东西可难了,你就得慢慢分析了,一行一行代码去分析,为啥呀为啥呀?报错东西啊,还是很友好的,起码有提示,没提示的东西啊,你不知道该怎么改的,那才是最难的。 来,我们再往下看, windows 和这个训练营可以的,但是我不推荐大家用 windows 去跑啊,一般情况下你们还是在服务器上去跑,大家顺便得学一学李磊这些操作。 人家说啊,就是,呃,你们用那个无邦兔也好,用 windows 也好,就是以后你们的工作啊,你们工作的一个生产环境不可能是 windows 环境的啊。没有,公司是是用 windows 做生产环境的。我当时我们当时上班时候老板,嗯,就我比较特,老板呢,都要求用那个三 to s, 然后我说实话我不太喜欢三 to s, 因为我一直就用那个无邦兔,他们全用三 to s, 你 们用啥?其实随便吧,就跟大六。那你看这里边 东西是不是都有了?这里边是不是东西都有了?让你看他说现在迭代然后损失怎么样?哎,那我说我现在能跑完一个循环了,能跑完一次迭代,那说明现在这个代码基本没有问题了,那下面我就可以批量去做事了,是不是? 好,就是给大家演示了一下,就是咱们这个看相吧,咱们该怎么去做吧?啊?就是我随便举个例子,因为今天正好要讲这个算法,那我就,我就随便找了一个算法给大家去举例子, 然后我再给大家说一件事啊,就是很多同学啊,你说我在 d 八的过程当中,咱们遇到一些报错,遇到报错我给大家再说一下,咱们按照什么样的方法去剪索。首先第一件事,咱们先解锁什么?先解锁这个 s u, 先检测啥?先在 iso 当中我们去检测是不是?比如说刚才我遇到一个错误啊?我们来检测一下来,比如说我们刚才是不是遇到这个错误了?好,我检测一下,然后你看它这里边,哎,是不是它有很多什么软 type, 什么什么东西?哎呦,那我说我能不能看一看 人家这些东西,人家遇到报错是不是有跟我相关了?所以现在一般你找,比如说你跑什么?优优有多少个?这个优优才六百多个。六百多其实挺多的了 啊,六百个算多了,这个项目算挺火的了,一般一般项目 s 幺有的是几个,有的是几十个,有的几百几千的,就看这个项目火的火的程度。先在这里边解锁, 这里边解锁完之后,然后你们在谷歌去搜,谷歌搜完之后你在大模型去搜,大模型搜完之后你再找不着,你在百度去搜,反正这些检测我觉着就是一个,是吧?我是喜欢先找这 s 幺,而且我再给大家说一件事, 我真有个习惯,我不知道是不是强迫症啊,我会把每一个 sao 全看一遍,如果说我要把一个 bug 棒,把一个模型当做是我以后应用的一个项目,或者说以现在我论文要以它做的一个 base line 模型, 我要全看一遍的,我要知道人家都遇到什么问题啊,我有个印象,我说以后回来我看,我真的就会从头到尾去看的啊,我不看原码,我也会把这些问题先大家看一看,尤其是人家说了,比如说我的测试结果啊,我的问题,什么东西啊?其实我是特别喜欢看这个的,这个我不知道大家你们有没有这个强迫症,我 一般 ic 我 会过一遍的啊,你们想过一遍可以的。好了,这就给大家说了一下,就是啊,咱们基本的一个逻辑吧,然后配环境还怎么去配? 如果你想要系统化学习恋爱课程,零基础,没有方向,很迷茫,缺乏学习规划,导师放养,无法将专业与恋爱融合,想进入恋爱领域,没有内推渠道,想转行恋爱,但是不知道如何转型?有以上问题可以后台留言。



二零二五年十二月 daytime 最新版来了,这款软件不仅可以帮助用户可以更好的进行编程,还可以实时的查看开源代码,为你带来全面的服务,同时支持手机和平板使用。废话不多说,接下来我手把手教会大家如何下载它的最新版。 首先点右下角分享键分享复制链接,复制成功后我们打开这个蓝色小鸟,没有的话就去安装一个,打开后会弹出一个资源包,如果没有弹出,就在这里搜索七梦宝库,然后打开这个文件夹,找到这个软件保存下载安装就可以用啦。

我去看好了,宝子们最近火爆全网的 github 啊,是一款开源代码托管平台啊,还有很多宝子不知道在手机如何去免费下载装啊,今天主播三秒教会你们操作简单,而且全程免费。 首先点开我视频右下角的分线链接,我们复制一下,去打开这个 app, 没有的去用商店去下载一个。这里我们点允许单踢,它会自动弹出一个文件包啊,如果没有弹出的话,我们主页框搜索画海宝库啊,我们点开它,找到格导最新版,保存下载安装就可以了。