【目标检测实验系列】AutoDL线上GPU服务器租用流程以及如何用Pycharm软件远 ...

滴水恩情  金牌会员 | 2024-6-24 10:15:40 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 550|帖子 550|积分 1650

1. 文章重要内容

       本篇博客重要涉及两个主体内容。第一个:从AutoDL网站中租用GPU服务器。第二个:用Pycharm软件远程连接租来的线上服务器,并以Yolov5项目为例,线上训练模子。此过程中会记录紧张的地方,以及本人踩坑之后,如何解决问题的所思所想(通读本篇博客大概必要15分钟左右的时间)。
       本篇博客参考的重要内容泉源于
       孟孟单单-AutoDL利用教程
       嗜睡的篠龙-Pycharm连接远程服务器(AutoDL)训练YOLOv5
2. 租用AutoDL服务器详细教程

2.1 注册AutoDL账号,并申请学生认证(学生认证有优惠,假如不是学生可以忽略此点)

       起首,我们打开AutoDL的官网(AutoDL官网),选择右上角注册按钮,新用户官网是送了10元的代金卷,可以用来租用服务器。注册流程是比力简单的,这里不详细做过多的表明。
       学生认证:注册并登录成功后,点击链接学生认证手册,根据教程操纵即可,必要注意到的是,假如没有教育邮箱,添加认证页面下方的客服微信进行沟通,提供学生证相关信息、注册账号信息就可以通过学生认证。(给客服发送的学生证记得隐藏关键的信息,客服只必要一个学生证兜底就行)。
       学生认证通过后,我们就会酿成炼丹会员,这样我们租用GPU服务器就会较普通用户更加的便宜,时间用的越久,越划算。如下图所示,学生认证成功酿成炼丹会员:

2.2 算力市场选择GPU,并选择初始化设置情况

       认证通过以后,点击主页导航栏上面的算力市场,来到选择租赁GPU的算力市场,这里详细内容还请参考孟孟单单-AutoDL利用教程对每个类别的详细表明。博主在这里选择的是按量计费(类似于网吧上网,多少钱一个小时)。GPU我选择的是RTX 3060、显存12GB,点击下图赤色箭头按钮即可跳转到租赁界面:

       之后,选择服务器的镜像,说白了就是给服务器设置一些情况,这里我选择基础镜像,后续镜像中必要什么就自己设置即可(授人以鱼不如授人以渔)。选择的基础镜像如下图所示:

       基础镜像是安装在conda的base情况当中,假如有小伙伴认识Anaconda的话,应该可以或许理解这段话的意思,后续我们会在conda中新建一个情况来训练项目,不要什么都往base内里放,东西多了容易起辩论和混乱。
2.3 控制台参数解析,并利用相关参数登录Xftp(Windows与Linux跨平台传输软件,很关键)

2.3.1 控制台参数解析

       租赁GPU服务器之后,我们点击网页右上角的控制台,就可以看到自己租用服务器的实例,如下图所示:

       起首博主得分析一点,如上图所示我们租用的084机器,内里的GPU显卡是共享用的,假如这台机器有8块GPU,假如租赁的是单GPU,那么当你选择开机之后就会占用一块GPU。所以当我们看到上图状态一栏下方的绿色字体GPU充足的时间,证实084这台机器中GPU至少有一块是充足的。但当084机器GPU都被占用的时间,就无法正常开机(但是可以无卡模式开机),一般的方式就是等候别人先用完再说。
       假如此时的GPU充足,如上图所示,我们在操纵一栏有两个按钮,一个是开机,一个是更多。鼠标移到更多的按钮上,会显示出栏目,如下图所示:

       实例开机占用GPU分为两种,一种是无卡模式开机,一种是正常开机。无卡模式开机,意思是不占用GPU(一般GPU被别人占满的时间,无卡模式照旧依然能开机的),有CPU,费用是0.1元/时,如下图所示:

       正常开机就是按操纵一栏的开机按钮,在算力市场中有明码标价说是多少钱一个小时,这种开机是占用GPU资源的,博主这里租用的RTX 3060卡的费用是0.6/时,如下图所示:

       紧张内容:无卡模式和有卡模式有什么区别?它们分别用于什么场景呢?
       无卡模式和有卡模式从字面意思就知道是有无GPU卡的区别。无卡模式收费较有卡模式少很多,一般用于Windows与服务器Linux之间传输文件,而有卡模式收费较无卡模式收费比力多,一般用于训练模子(因为要用到GPU)。
       无论是无卡模式照旧有卡模式开机,之后控制台在SSH登录一栏出现登录指令和密码,这里的登录指令和密码非常紧张,将会在Xftp部分和Pycharm远程连接部分详细分析,现在知道有这么回事即可,如下图所示:

2.3.2 Xftp下载以及设置

       起首我们先容Xftp跨平台传输软件,这是为了可以或许在windows和Linux之间可以轻松、简单的传输文件,比如在服务器上训练好的模子想要下载到windows平台,只要通过Xftp界面轻松移动即可。
       进入到Xftp官网Xftp官网,点击download下载,然后找到免费授权页面,填写相关信息,收到邮箱信息之后,打开邮箱中的免费下载链接即可下载免费版的Xftp,如下图所示:


       安装完之后,我们打开Xftp软件,点击左上角新建按钮,之后会弹出一个新建链接设置信息的对话框,如下图所示:


       回到博客的上一部分,有简单分析SSH登录账号和密码相关信息,这里我们和Xftp联系起来做一个参数详解,起首我们在AutoDL控制台部分复制自己的账号和密码(这里做一个演示,账号密码为虚构,但格式都是一样,博友们按照自己的账号、密码来就行)。格式如下:
        登录指令:ssh -p 66666 root@region-8.seetacloud.com
        登录密码:123456
        参数解析66666代表的是端标语、root代表的用户名(一般都是一样的)、region-8.seetacloud.com代表的是主机域名,是什么就是什么、123456即为登录的密码。
        OK,我们先容完参数解析,这时间将参数对应于上面的Xftp参数框,名称是可以随便取的、主机对应于参数解析的主机域名、端标语对应于参数解析的端标语、用户名对应于参数解析的用户名,一般为root密码对应于参数解析的登录密码,按照上面的例子,填写完的样例如下图所示:

       到这里然后点击连接按钮,即可进行连接,连接成功后跳转到如下页面,要是想要传输文件,只必要挪动文件到另外一边即可,如下图所示:

3. 利用Pycharm软件远程连接服务器,并训练模子(以Yolov5项目为例)

3.1 Pycharm设置服务器参数,远程连接服务器

       起首我们必要下载Pycharm软件,百度搜索进去官网下载。注意:Pycharm必要下载专业开发版本,不能下载社区版本,因为远程连接服务器的相关功能社区版本不具有(另外:Pycharm专业版本如何破解,自行搜索)。由于安装Pycharm网上有很多详细教程,并比力简单,这里不做过多表明。
       下载安装完成之后,打开Pycharm软件,选择左上角File ->Settings->ython Interpreter,如下图所示:


       接着点击右上角的小齿轮按钮->add->SSH Interperter,详细操纵如下图所示:


       来到SSH Interpreter界面,认识的服务器参数界面,和Xftp服务器参数设置页面很相似,这里做简单的表明:region-8.seetacloud.com代表的是Host,root代表的Username(一般都是一样的),port代表的是端标语。点击下方的Next按钮(记住这里连接服务器操纵的条件是AutoDL控制台服务器已开机,不然是连接不上的!)
       跳转到输入密码的页面,输入服务器对应的密码即可,如下图所示:

       点击下方的Next按钮,跳转到服务器与本地项目连接的设置页面,这里必要关注的是三个点。第一点是Interpreter,这是表明器,也是项目设置所需的情况,还记得我们租用服务器时,选择的初始化miniconda3的情况们,它的存放路径是在**/root/miniconda3/bin/python**,我们按下图进行选择设置:

       第二点非常紧张是Sync folders同步文件夹操纵,选择windows项目文件的根目次->服务器对应的项目根目次。我们点击选择文件路径按钮,可以自定义修改windows和服务器对应根目次的路径,如下图所示:

       踩坑点:服务器直接选择默认路径,项目文件就会存储在体系盘中,一般来说体系盘比力小,一般只管少放东西,不然等到体系盘满的时间会下载、安装不了很多东西,本人切身经历过这样的问题。
       解决办法:一般项目文件以及对应的数据集存放于数据盘中,在AutoDL中对应于/root/autodl-tmp/文件夹下,如下图所示:(auto-tmp文件夹后面的project文件夹为自己所创建,根据个人的需求来。比如yolov5项目,服务器的地址可以这样创建/root/autodl-tmp/project/yolov5。必要注意到:纵然服务器对应的文件夹,比如/root/autodl-tmp/project/yolov5中的yolov5不存在,也会自动创建)。

       第三点: 记得勾选Automatically upload复选框,这个按钮的意思是,在本地pycharm中修改的代码,会自动上传到服务器对应项目的同样地方,如下图所示:

       设置参数成功之后,点击Tools->Start SSH Session即可连接服务器,之后弹出一个小窗口,选择Remote Python开头的服务器地址即可(当然每个差别的项目,可以创建差别的连接)连接成功的界面如下所示:


       因为我这里开启的是无卡模式,所以没有GPU的显示信息(一般传数据集、修改相关代码都可以利用无卡模式,这样更省钱,训练模式的时间再切换有卡模式)。
3.2 设置pytorch和yolov5所需情况,以保卫历程训练模子

       在选择租用服务器那一章节,我曾说到自己一步步来设置服务器的情况,不消AutoDL提供的热门主流情况。由于目前的conda情况是base,我们重新创建一个conda的情况,名为yolo,并连同安装python的版本(建议Python的版本>=3.8),并且刷新conda情况,使其生效。代码如下所示(操纵都在下令行中进行):
  1. $ conda create -n yolo python=3.8   
  2. $ conda init bash && source /root/.bashrc
  3. $ conda activate yolo
复制代码

       我们已经切换成yolo情况,此时开始安装pytorch。起首我们要查看选择服务器的cuda的版本。通过如下下令查看即可:
  1. nvcc -V
复制代码

       可以看到博主自己的版本号是11.1。打开Pytorch官网,找到Previous versions of Pytorch,意思是pytorch以前的版本号,点击进去。

       然后通过ctrl+f搜索11.1关键字,就可以定位到pip的下载下令,把下令粘贴到Pycharm控制台窗口,回车下载即可(大概会比力慢),如下图所示:

       下载完成之后,验证pytorch的GPU版本是否成功,起首通过python进入到python下令行界面,再利用如下下令即可:
  1. #判断是否安装了cuda
  2. import torch
  3. print(torch.cuda.is_available())  #返回True则说明已经安装了cuda
  4. #判断是否安装了cuDNN
  5. from torch.backends import  cudnn
  6. print(cudnn.is_available())  #返回True则说明已经安装了cuDNN
复制代码
       踩坑点:博主在进行测试的时间,不停返回false。最初不停怀疑自己装的pytorch版本是cpu版本,厥后反复确认是gpu版本,才知道是自己的服务器开启了无卡模式。无卡模式是没有gpu的,所以会返回false。只必要开启有卡模式,也就是正常开启,则就会返回true。
       在第二节远程连接服务器的时间,我们把本地的yolov5项目映射到了/root/autodl-tmp/project/yolov5,所以我们进入到此文件夹中,通过requirements.txt下载yolov5所必要的其它情况,代码和图如下所示(记住是yolo情况,别搞错了):
  1. pip install -r requirements.txt
复制代码

       至此,我们将yolov5所必要的情况都设置完毕,接下来可以训练数据,网络日志信息。
       假如我们直接启动,那么相关的训练信息就会直接显示在控制台,一旦我们关闭了窗口,步调也就自动停止。我们是希望可以或许让步调在后台(保卫历程)执行,并且网络日志到文件中,执行完毕立马进行关机。
       起首,博主的Linux是ubuntu体系,我们必要通过如下下令安装screen包(用来开启保卫历程):
  1. apt-get install screen
复制代码
       下载完screen之后,设置screen网络控制台信息的日志文件路径,利用如下代码:
  1. vim  /etc/screenrc
复制代码
       我这里存放的路径是/root/autodl-tmp/logs/screenlog_%t.log,后面的%t是通配符,在接下来会进行分析,在/etc/screenrc添加如下代码,并保存退出:
  1. logfile /root/autodl-tmp/logs/screenlog_%t.log
复制代码

       随后,我们开启一个screen保卫历程,利用如下下令:
  1. screen -L -t xxx -S yolov5
复制代码
       这里的t也就是之前日志内里的通配符%t,这里可以用来传日志文件的名字,我这里用xxx代表。后面的yolov5是保卫历程的名字。通过screen -ls 下令,可以查看当前的保卫历程,如下图所示:

       当screen小括号后面的状态酿成(Dead),则为殒命状态,我们可以通过screen -wipe消除掉这些殒命历程,如下图所示:

       非常紧张:我们开启保卫历程后,切换到yolo情况,可以到存放情况的路径查看日志文件,也就是/etc/screenrc设置文件中的日志路径。我们在训练模子时,控制台会不断的输出信息,想要退出项目输出信息的控制台,只必要鼠标选中控制台,然后按ctrl+a+d即可退出screen界面。假如想看看训练的轮次多少了,第一种方法是看日志文件,第二种方法通过screen -r 657.yolov5(保卫历程的名字,如上图所示)。
       关于训练本领方面,我们上传项目和数据集的时间,建议分开,单独上传,推荐利用无卡模式上传,这样更加省钱。项目(比如yolov5)中的数据集路径要和上传到服务器的数据集的绝对路径一样,切记要检查仔细了。另外,我们在训练yolov5项目时,假如要想训练完立即关机,切换到yolov5项目根目次,可以利用如下下令:
  1. python train.py && shutdown
复制代码
       小细节理解:其实我们用Pycharm连接远程服务器,代码和数据集都放在服务器,本质上和本地没有一点关系,由于服务器没有IDE友好界面,所以通过远程同步操纵。Pycharm代码一改变,就会自动上传,这是因为在设置远程服务器中我们勾选了勾选Automatically upload复选框,假如不放心,可以在Pycharm的tools一栏,选择如下图所示的操纵:

4. 本篇总结

       本篇重要先容了AutoDL服务器租用流程,Pycharm远程连接服务器并进行训练。通过详细的步骤和小提示,让更多的人少折腾在情况设置上面。另外,博客中如有任何问题,或者不理解的地方,欢迎在批评区交流。如博客对您有作用,点个小赞,谢谢大家!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

滴水恩情

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表