文章目录
前言
首先分享我常用的两个深度学习云计算平台:AutoDL和恒源云。
两个平台的使用方式差不多,其中:
AutoDL的数据可以免费保留,所以我一般直接使用它的Jupyter lab在线编辑代码,数据也索性放在云端,需要注意及时关注镜像是否快要被释放,以免数据丢失。
恒源云的hy-tmp数据只保留一天,所以我一般把它当作远程解释器,随时用随时上传,即便数据丢失,下次再传一次就行。
不管哪个平台,都可以配置远程解释器(.py文件)或 jupyter服务器(.ipynb文件),从而在本地的pycharm编写代码。以下内容需要Pycharm专业版
一、Pycharm配置远程解释器
1.点击pycharm右下角python解释器->添加新的解释器->SSH
2. 选择新建
3. 在云计算的实例界面获取实例SSH主机名、实例SSH端口号、实例密码
例如:复制的登陆指令ssh -p 30700 root@i-1.gpushare.com命令中, 各个参数的含义为:
用户名:root
HOST: i-1.gpushare.com
端口号:30700
4. 填入第3步的界面中,点击下一步,复制上述密码,再下一步
5. 等待配置完成后,在如下界面选择解释器路径
对于①:恒源云有如下路径提示:
或者也可以在远程终端中输入:which python
会返回默认解释器的路径(也可以根据需要的虚拟环境来选择,但一般选择的实例都是配置好的环境,所以用终端默认的解释器路径即可):
对于②:即选择将本地项目映射到远程的哪个文件夹
对于③:根据自己的项目大小来选择
6. 上述配置完成后点击创建即可
这个可能需要稍等一会儿:
解释器显示成了远程解释器:
配置好后可以直接运行.py文件了,由于解释器实际是在远程运行的,所以相关的代码和数据需要及时更新到远程主机。
这里可以访问远程主机目录:
二、Pycharm配置远程Jupyter服务器
虽然配置了远程解释器可以直接运行.py文件,但是pycharm想要运行notebook时,还需做一些额外配置。以下主要针对本人使用【恒源云】过程中发现的问题,其他平台可能不一定完全一致
1. 通过配置jupyter notebook
如果直接运行.ipynb文件,可能会出现类似下面的错误:
该错误可以在pycharm界面下方的jupyter服务器找到,可以看出这里似乎运行的是jupyter notebook服务而不是jupyter lab服务:
前面的W开头的WARNING信息可以不用管,应该版本不太兼容导致的,但是服务内部已经正确处理了。主要是最后C开头的CRITICAL提示,需要加入--allow-root
参数。具体如下:
改为如下:(原来–no-browser的可以删掉,因为不加这一项似乎也自动配置了)
现在notebook应该可以运行了,并且是通过本地在远程运行的,因此需确保远程目录结构与本地一致。
再看下方的jupyter服务器也已经在运行中了:
同时jupyter服务配置显示为托管服务器的隧道:
【注】:在下图的路径下,可以看到jupyter lab和jupyter notebook的配置文件,不过不太清楚上述在图形界面填参数的方式和填写配置文件的方式哪种优先级更高,所以我就没试修改配置文件会怎样:
2. 通过配置jupyter lab
上面实际上是使用了远程的jupyter notebook服务,也可以通过使用远程jupyter lab进行连接。
在恒源云实例界面打开jupyter lab:
会跳出jupyter lab的网页,复制该地址:
仍然选择
将复制的地址填入这里,并点击应用:
可以看到jupyter服务配置这里成了远程连接,但这种方法不能在本地直接运行,会出现如下错误。猜想应该只是把本地代码发送到了远程来运行,但是路径不是之前映射好的路径,所以有些自定义的包找不到。
不过同时可以看到左边的项目里多了jupyter lab的连接,可以在这里找到远程文件直接编辑和运行。(这其实和直接在浏览器中打开jupyter lab没什么区别了,好处就是可以使用pycharm的ai自动补全等插件)
总结
以上内容仅为个人摸索,不一定正确,如有问题,欢迎讨论交流。