【深度学习】Pycharm连接远程服务器(AutoDL)训练YOLOv5

服务器 0

文章目录

    • 前言
    • Pycharm远程连接AutoDL
    • 配置YOLOv5环境
    • 获取PASCAL VOC2007数据集
    • 训练技巧
      • 守护进程(离线训练)
      • 自动关机
    • References


前言

本文选择使用Pycharm连接AutoDL平台的云服务器(对学生党有优惠福利),连接过程都差不多,连接其他服务器(比如自己课题组的)时可类比进行尝试。

另外,本文默认大家已经了解AutoDL的基本使用过程,不熟悉的同学们可以去看官方帮助文档:AutoDL快速开始

本文选择的AutoDL镜像为:Pytorch=1.10.0 Python=3.8 Cuda=11.3

 

Pycharm远程连接AutoDL

1、无卡模式开机,获取登录指令:ssh -p 50529 root@region-5.autodl.com
在这里插入图片描述
2、打开Pycharm,选择Add Project Interpreter
在这里插入图片描述
3、选择SSH解释器,输入登录指令
在这里插入图片描述
4、输入密码
在这里插入图片描述

5、选择Python解释器:/root/miniconda3/bin/python,同时同步本地文件夹和远程服务器的文件夹(直接新建yolov5文件夹即可),由于这里勾选了Automatically upload project files to the server,因此默认本地的yolov5工程文件,已经全部更新到了对应的远程服务器的yolov5文件夹中

在这里插入图片描述
 

配置YOLOv5环境

1、进入远程服务器终端命令窗口,并更新bashrc中的环境变量:conda init bash && source /root/.bashrc
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、删除miniconda3/pkgs/文件夹下所有的文件,方便之后成功安装依赖,当然这一步也可以略过

$ cd miniconda3/pkgs$ rm -rf *

3、新建环境(可选,也可以直接在base环境安装依赖

$ conda create -n yolo python=3.8    $ conda init bash && source /root/.bashrc$ conda activate yolo

4、安装pytorch、torchvision和cudatoolkit,根据镜像安装对应版本

$ conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=11.3 -c pytorch -c conda-forge

5、安装YOLOv5默认依赖

$ cd yolov5$ pip install -r requirements.txt  # install

6、测试安装是否成功

$ cd yolov5$ python detect.py --weights weights/yolov5n.pt --source data/images/

在这里插入图片描述

 

获取PASCAL VOC2007数据集

AutoDL的实例均提供公开数据集(CIFAR10、VOC2007、VOC2012、COCO2017等),默认地址在/root/autodl-publ路径下。

# 在autodl-tmp(数据盘)中新建VOC2007文件夹(base) root@container-a798118d3c-5d97f4b1:/# mkdir autodl-tmp/VOC2007# 进入Pascal VOC2007数据集保存路径(base) root@container-a798118d3c-5d97f4b1:/# cd autodl-pub/VOCdevkit/# 将Pascal VOC2007数据集解压到自定义路径(base) root@container-a798118d3c-5d97f4b1:~/autodl-pub/VOCdevkit# tar -zxvf VOC2007.tar.gz -C /root/autodl-tmp/VOC2007/

 

训练技巧

守护进程(离线训练)

我们在使用以SSH为基础的工具软件(比如XShell、MobaXterm、PyCharm,VSCode等)进行远程执行程序时,为了避免因为SSH连接中断导致程序终止,遭受不必要的损失,通常会开启守护进程来执行程序。这里介绍两种守护进程方式:AutoDL自带的Jupyterlab终端和screen工具

1、最简单的方式是通过jupyterlab的终端来执行,只要jupyterlab不出现重启(几乎不会),jupyterlab的终端就会一直运行,无论是本地主机断网还是关机。如果关机了这个终端tab,可以在左侧栏正在运行终端和内核中找回。

在这里插入图片描述
在这里插入图片描述
2、使用screen命令,首先要在命令行终端安装screen
apt-get update && apt-get install -y screen

之后就是常规操作了:

$ screen          # 开启screen$ screen -ls      # 找到所有离开的会话$ screen -r ...   # 恢复指定会话$ kill ...        # 关掉指定会话

在这里插入图片描述
 

自动关机

不确定自己的代码需要执行多久结束,希望执行完成后立马关机,这类场景可以通过shutdown命令来解决。

1、命令行后面加shutdown

$ python train.py              # 原执行命令$ python train.py; shutdown    # 用;拼接意味着前边的指令不管执行成功与否,都会执行shutdown命令$ python train.py && shutdown  # 用&&拼接表示前边的命令执行成功后才会执行shutdown

2、在Python代码中执行shutdown命令

import osif __name__ == "__main__":    # xxxxxx    os.system("shutdown")

 

References

AutoDL帮助文档
pycharm远程连接AutoDL训练pascalVOC2007数据集

也许您对下面的内容还感兴趣: