- 复现代码,遇到的问题:
- 没有名为“torchvision.models.utils”的模块。
2.ModuleNotFoundError: No module named 'index_max'。
这个需要用到DeepI2P中的'index_max'部分,相关资料:https://www.youtube.com/watch?v=l_Rpk6CRJYI&list=PLDV2CyUo4q-LKuiNltBqCKdO9GH4SS_ec&index=2 C++和cuda与pytorch
参考文章:
https://blog.csdn.net/qq_43173635/article/details/121150939?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171020775816800215032999%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171020775816800215032999&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-121150939-null-null.142^v99^control&utm_term=index_max&spm=1018.2226.3001.4187
https://blog.csdn.net/qq_42940160/article/details/134405251?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171006327116800192247118%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=171006327116800192247118&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-134405251-null-null.142^v99^control&utm_term=%20%E6%9C%AA%E8%AE%BE%E7%BD%AE%20CUDA_HOME%20%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E3%80%82%E8%AF%B7%E5%B0%86%E5%85%B6%E8%AE%BE%E7%BD%AE%E4%B8%BA%20pytorch%20cpp%20%E6%89%A9%E5%B1%95%E7%9A%84%20CUDA%20%E5%AE%89%E8%A3%85%E6%A0%B9%E7%9B%AE%E5%BD%95&spm=1018.2226.3001.4187
根据这篇博客,理论上是可以创建index_max的,但是仍然报错如下。
- Could not build wheels for index-max, which is required to install pyproject.toml-based projects
使用命令pip install wheel
- 在运行index_max_ext下的文件setup.py时,报错OSError: CUDA_HOME environment variable is not set. Please set it to your CUDA install root
https://blog.csdn.net/weixin_44001371/article/details/128113557?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171020989416777224447134%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=171020989416777224447134&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-7-128113557-null-null.142^v99^control&utm_term=CUDA_HOME%E8%AE%BE%E7%BD%AE
最后添加CUDA_HOME环境变量
- This error originates from a subprocess, and is likely not a problem with pip.
还是无法解决,但是论文作者使用Linux OS可以运行,所以考虑使用linux操作系统。
- 由于上面的方法跑不通,所以开始尝试租服务器解决。
下面介绍AutoDL服务器配置+配置深度学习环境(pytorch)
首先按需求租号服务器,这里根据需要选择。
点击jupyterlab,(或者使用Xshell,需要下载注册),配置环境。
激活conda
输入 vim ~/.bashrc,显示如下:
在键盘上输入i,进入编辑模式,在最后一行加上source /root/miniconda3/etc/profile.d/conda.sh,然后按esc,再输入:wq退出
重启终端或输入bash重启。
进入环境,输入conda activate base
成功进入bash环境说明配置成功。
创建新环境conda create -n test python=3.8
这里test是自己取的名字,版本应该是和服务器对应的(不确定)
进入新环境,输入conda activate test
根据不同框架和GPU的操作
复制到终端等待安装,过程略慢。
安装其他包,输入: pip install jupyter d2l
jupyter页面更新
在teat环境中,输入: conda install ipykernel
输入: ipython kernel install --user --name=test
Pycharm中SSH、SFTP连接远程服务器
创建SFTP相关配置
在导航栏部分找到Tools→Deployment→Configuration。
在弹出的窗口中点击左上角加号,选择SFTP。
比较关键的一个环节,需要配置Root Path,这个字段的意思是远程服务器的根路径,比如说我把他设置为/home/a/,那就意味着我们把a这个文件夹当做了Pycharm所检测的根路径,将来的项目必须在a这个文件夹下面Pycharm才能检测得到。这里还有一个Autodetect的选项,他会自动选择主目录下的用户文件夹作为Root Path,如/home/xiaoming/,按需所取即可。
Mappings这里是本地和服务器端的对应。
然后还要选择python解释器。
添加解释器,选择On SSH。
将实例SSH指令中的Host、Port与Username进行匹配和填写(Username均为root,Host和Port查看自己实例的SSH指令),输入SSH密码。
继续下一步,直到看到下面的弹窗。选择System Interpreter,配置远程Python解释器地址为/root/miniconda3/bin/python
配置同步目录,意思是本地项目和远程实例中的哪个目录进行关联。网上有人这里设置为实例的数据盘子目录:/root/autodl-tmp/project/,不建议使用默认的/tmp目录,但是我直接使用了tmp。
点击创建,如果配置均无误PyCharm会有小会配置过程,完成后即可远程开发。
如果在运行时找不到Python文件,可能是没有自动同步代码,那么可以选择手动同步:
配置好PyCharm远程开发后,可以在PyCharm的终端中下拉找到远程服务器打开远程终端:
目前成功生成index_max库