最近在看diffusion model,被艰深的数学公式搞的头晕眼花。
幸亏发现了一位大神的blog,讲的特别好(虽然是全英文的),遂学习之。
理论看的差不多了,就打算实践一下,看看代码。
因为最终目标是应用加速的DM,所以直接上手ldm。
整整看了两三天,还有一些细节不太明白(以及很多很多库的使用)。
某个细节,本人越想越奇怪,在函数里越跳越晕(因为层层调用)。
这里,本人收获了第一个经验教训:不要硬看代码,先跑起来再说,因为跑起来能debug啊。
然后,准备开始跑代码。
在这里,遇到了第一个问题:ModuleNotFoundError: No module named 'ldm'
我太疑惑了,明明ldm文件夹就在我跑的py所在文件夹的隔壁:
但是vscode就是找不到。
于是我开始搜索:调用自定义模块出现ModuleNotFoundError: No module named ‘XXX‘的解决方案。
以上方案基本都提到了路径的问题。
解决方法大概就是,把需要调用的程序路径,加到工作路径里。
于是我尝试了
import sys
sys.path.append(程序所在路径)
还尝试了在ldm文件夹里加__init__.py并且在其中添加路径。
ps : __init__.py 文件的作用: 把__init__.py所在文件夹当作一个包来管理,每当有外部import
的时候,就会自动执行__init__.py里面的函数。
ALL FAILED......
鄙人的腰开始隐隐作痛。
这条路是肯定走不通了。
于是我打开了作者的github,想看看是不是自己的操作流程出现了什么问题。
哈,当看到那个熟悉的environment.yaml文件派上用场的时候,我就知道我唐突了。
我!忘记重装虚拟环境了,现在用的是之前的diffusion项目环境......
这里,本人收获了第二个经验教训:要跟着作者github上的instructions一步步来,不要乱搞啊。
由于使用environment.yaml总是超时,我自己新建了一个requirements.txt,暂时删除了一些下载困难的库,之后pip install。
慢吞吞装好了环境,期待的点击debug——然而问题还是没有解决......
此时我万念俱灰,破罐子破摔,直接把报错信息复制粘贴,然后丢给google。开始耍手机。
抬头发现,一摸一样的问题出现在浏览器页面上。
这里,本人收获了第三个经验教训:不要加工报错内容,直接搜报错信息,前车之鉴更helpful啊。
页面上出现的pip install -e .
让我想起requirements.txt里被我删掉的那个 -e.
啊,原来那个是有用的啊!!!
ps: pip install -e. 利用set_up.py安装
兜兜转转,终于vscode不再报这个错了。
新的错误又出现了。
俺走了。
未完待续。