我的研究方向是显著性目标检测,虽然对比目标检测来说,数据集和模型的尺寸已经降低很多了,然后我们实验室也有一台公用服务器,但是那台服务器好多人使用,每个人能分配到的容量就很小,而且有时候会宕机,IP地址也更换不停。
所以,为了跑计算机视觉方面的实验,我就去autodl官网自己租服务器,我个人感觉autodl还是比较好的,因为他是按时计费,然后有不同的GPU规格,可以适用不同的视觉任务,我比较多租用的是RTX 3080,一般一块就够我的模型跑了,但是之前跑目标检测任务,还有人体姿势检测方面的,就要租更高规格的GPU了,这个都可以按照自己的需要租用。然后这篇博客主要是记录一下自己怎么去云服务器申请环境跑代码。
一、创建环境
autodl的官网地址:Autodl
它的页面如下:
第一次使用的小伙伴可以注册,如果是学生还可以进行学生认证,这样租服务器有一定的优惠。
注册登录好之后,我们就可以开始租服务器了,点击控制台是我们使用较多的一个菜单,在这里你可以看到自己的容器实例,这里的实例就像一个Docker环境,我一般一个项目就租一个实例。
点击容器实例,点击上面的租用新实例
在这里你就可以根据自己的需要创建不同的实例,计费方式有四种,我一般是按量计费,然后地区选择北京A区,GPU数量选1,型号是RTX 3080Ti,然后下面会有一个镜像选择,你可以在之后的实验中创建一个自己的镜像,这样你后面也可以直接使用,也可以去社区看看有没有你要的镜像,我会选择基础镜像,然后选择Minniconda,这样我就可以使用conda命令创建我自己的环境。
上面全部选好以后就点立即创建,然后等一两分钟,你的容器实例就创建好了并且开机了,你可以直接打开JpyterLab,然后打开终端,如下页面:
我们下载的GitHub代码一般存放在/root/autodl-tmp文件夹下,刚开始我们在base环境下,我会使用conda命令创建一个虚拟环境,比如,我这次要跑的代码是《FCOS: Fully Convolutional One-Stage Object Detection》这篇论文的实验,那我就找到这篇论文的Github地址:FCOS
根据这里的readme文件一步一步去安装环境,
举例:
使用conda 命令:
conda create -n FCOS python=3.8
FCOS代表你的虚拟环境名称,然后后面是python版本。
创建好了虚拟环境之后,我就根据源代码的readme文件一步步安装,比如安装Pytorch,一些依赖包等等,这里我就不详细说明了,每个人的安装步骤这里应该不太一样。要注意因为你的依赖都安装在虚拟环境中,所以你每次跑代码都要在这个虚拟环境下跑,使用如下命令激活虚拟环境:
conda activate FCOS
建议大家跑代码都先创建一个虚拟环境,这样你就不会跟系统环境混乱了。
创建好虚拟环境之后,进入到autodl-tmp文件夹,使用git命令下载代码:
cd autodl-tmp
git clone https://github.com/tianzhi0549/FCOS.git
这里面的地址就是github上的https地址:
这样就可以把源代码下载到你的云服务器上,下面就可以开始跑代码啦。
二、关于数据集
我跑目标检测和姿势识别的时候,数据集一般都是COCO2017,这个数据集将近20G,针对如此大的数据集,autodl在社区会有公开数据集,这个页面也有说明如何使用公开数据,就是你记住它在实例中的位置,然后在你的代码中填上这个位置就可以了。
对于一些在官网公开数据中不存在的情况,你可以使用阿里云盘和autodl协助的方式,在容器实例开启之后,点击AutoPanel,会看到一个公网网盘选项
这里的网盘就是阿里云盘,阿里云盘传输速度很快,还不用开会员,如果新用户的话还会送你很大容量,学生还有额外的容量,所以免费的容量管够了,再结合autodl服务器我觉得特别好用,这样你把你的数据集从晚上下载下载上传到阿里云盘,然后在autodl服务器上传,上传速度也相当可以,你的权重文件,预训练模型,数据集都可以,默认上传到autodl-tmp文件夹下。
三、autodl服务器如何连接VS Code或者PyCharm
我们跑别人的代码,如果可以的话,应该还想改进他们的代码,但是在Autodl的JupyterLab改代码就不方便,因为不能调试,断点,所以要改代码我一般在VS Code 软件改,这里讲一下如何将Autodl 连接到VS Code。
首先你要下载这个Visual Studio Code软件,网上都有教程,下载好之后打开,点击扩展,要下载一个叫Remote Explorer插件
接着你下载好了之后,在VS Code左边点击这个远程服务器插件,点击ssh后面的加号,表示连接新的远程服务器,这时会出现一个SSH 连接命令,你就把autodl上你刚创建的服务器打开之后那个登录指令复制过去:
把登录指令复制到VS Code之后,会提示你选什么系统,选Linux,然后就要输入密码,密码在云服务器那个。可能要重复几次输入密码,直接复制就好了,这样你就在本地VS Code连接上了云服务器,你在VS Code修改的密码在云服务器也会同步了。
四、总结
上面就是如何在Autodl 云服务器创建环境,上传数据 、以及连接VS Code,还有更详细的文档在官网也可以找到。
然后我最近又发现了一个更省钱的方法,就是启智AI协作平台(启智)
启智平台有CPU,GPU和NPU,然后有算力积分可以免费获取,一块V100才2积分一小时,然后积分每天都可以领,具体可以去官网看看,反正就是不用花钱就能训练模型。因为我也用过其他的云服务,比如华为云的modelarts,那个太烧钱了。
启智平台呢,你可以创建不同的云脑任务,可以有训练、测试、推理等,但是它不可以连接本地VS Code,所以不好修改代码,而且训练云脑任务的时候,你也不能配环境,因为它直接就开始训练了,也没有终端。但是我发现它可以和autodl结合使用,
具体来说我会先在autodl把模型调通 ,就是确保代码运行训练的python文件时就能够直接训练了,只要能训练就好了,你不用让它一直训练,这个时候你就把你调通的代码上传到启智平台,然后在启智平台创建一个调试云脑任务,在调试的时候你创建好你的源代码所需要的依赖,环境等,然后保存下这个镜像。(这里非常关键,一定要保存成为你自己的私有镜像),这样你再去创建一个训练任务,在参数设置这里的镜像就选择你自己刚刚保存的,然后新建任务就可以直接训练啦,畅通无阻,还是免费的,有V100和A100两种GPU规格。