实验室服务器老掉线,疫情不方便线下重连,因此考虑租赁GPU使用。本文主要介绍使用租赁的云GPU来运行Pycharm实例的一些细节,以及数据的交互。关于AutoDL我就不多介绍了,链接如下:
AutoDL官网
如上图,是我租的一块3090,单价1.88元每小时,新注册会送优惠券,优先扣优惠券的额度。建议进行数据传输、环境搭建同步等不需要用GPU的时候,使用无卡模式,无卡模式一小时只需要一毛钱。
1.pycharm远程实例连接
1.1 pycharm配置
首先需要对pycharm进行配置,租用云GPU的前提是你的pycharm为专业版本,如果学校有给你个人使用的edu邮箱,直接申请就好。我们学校没有,自己去淘宝花30块钱买的一年激活自己账号,图便宜几块钱买别人的账号用也可以。其他的配置参考官网链接至远程NoteBook开发之前,本人测试可用:
AutoDL帮助文档
1.2 pycharm远程配置conda环境
官方文档只有上面链接里的部分,文档给出的B站视频也是缺失的,因此有必要在这方面详细介绍一下。 经过上一步,pycharm本地实例已经和远程主机通过SSH建立连接,可以使用以下代码测试是否已经连通:
import torch
import platform
name = "base_env"
gpu_num = torch.cuda.device_count()
torch_version = torch.__version__
python_version = platform.python_version()
print(str.center(("使用base环境:%s" %name),50,'*'))
print("python_version:Python %s \n" %python_version)
print("cuda_version:CUDA%s \n" %torch.version.cuda)
print("cuda is available:%s \n" %torch.cuda.is_available())
print("torch_version:%s \n" %torch.__version__)
print("gpu_count:%d \n" %gpu_num)
for i in range(gpu_num):
print("gpu %d-->gpu_name:%s \n" %(i+1,torch.cuda.get_device_name(i)))
控制台输出如下:
先前的工作是将本地和远程进行连接,接下来就需要为远程配置conda环境,并在本地实例使用该虚拟镜像。这里需要说明:租用新实例的时候配置的是base的环境,还需要自己创建新的conda环境。所有环境的配置文件一般在 /root/miniconda3/envs路径下,本人在terminal使用以下命令创建一个conda环境作为本地实例的虚拟环境:
conda create -n py36 python=3.6
conda init bash && source /root/.bashrc
conda activate tf
在该环境下安装对应版本的pytorch包:
pip install torch==1.10.0+cu113 torchvision==0.11.0+cu113 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html
这里安装大的包时候,可以会因为内存不足报错,这是因为无卡模式下内存只有2G,只需要在pip指令后添加 –no-cache-dir 即可。
上述内容是为远程终端配置conda环境,现在还需要将该环境作为虚拟环境应用到本地实例中。打开pycharm的setting,输入interpreter配置python解释器,第一行的路径是解释器的路径,第二行是本地实例在远程的关联目录(可以看成是数据文件夹或者备份文件夹,详细在下一章节解释):
配置的虚拟环境解释器和其他类型解释器类似,如果在远程pip的包长时间未及时更新到本地,可以尝试直接重启pycharm(情况较罕见)。最终配置完的虚拟解释器如下:
接下来就可以开始远程调试,使用GPU训练测试等操作了。
2. 数据交互
2.1 本地实例的数据交互
在上一节提到,创建虚拟环境解释器的时候有一个关联目录的选项,在参考官网文档给本地和远程进行连接时候,选择远程数据盘 /root/autodl-tmp 作为关联目录路径。这个路径就是本地实例保存在远程的路径,有路径的疑惑时候可以直接在远程terminal输入dir指令查看文件目录。
而在为本地实例创建虚拟conda环境时候,也有一个需要选择的关联目录(如第四张图所示)。这个路径就是最终你的实验数据保存的地址,具体拿train来讲,就是你设置parser.add_argument的路径,虽然使用 /root/autodl-tmp路径也不会报错,但是最终的结果并不是保存在该路径下。如果此时关联路径很混乱,可以使用以下代码查看当前的关联目录路径:
import os
print(os.getcwd())
到这里,已经可以完整使用租来的GPU进行训练或者测试了。
2.2 大文件传输
在train或者test时候,数据集较大,不适合使用pycharm的tools工具栏进行上传下载和更新,这时候可以使用公网网盘进行数据传输,如果没有百度网盘会员,建议使用阿里云盘:
公网网盘数据传输
测试完的数据可以通过网盘上传来获取。补充一点,AutoDL公网网盘(可能也只是百度网盘),超过一百个文件必须要打包才能上传,而AutoDL服务器没有打包的指令,只需要按顺序输入以下三行指令即可安装zip。
apt-get install build-essential
sudo apt-get update
apt-get install zip
最后吐槽一下,百度网盘真的不建议,我是因为开了年费:) ,又贵还限速限内存
|