草庐IT

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

嗜睡的篠龙 2023-04-29 原文

文章目录


前言

本文选择使用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 os

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

 

References

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

有关【深度学习】Pycharm连接远程服务器(AutoDL)训练YOLOv5的更多相关文章

  1. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  2. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  3. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  4. ruby-on-rails - 在 Rails 中调试生产服务器 - 2

    您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除

  5. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  6. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  7. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  8. ruby - 我的 Ruby IRC 机器人没有连接到 IRC 服务器。我究竟做错了什么? - 2

    require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame

  9. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  10. ruby - Rails 开发服务器、PDFKit 和多线程 - 2

    我有一个使用PDFKit呈现网页的pdf版本的Rails应用程序。我使用Thin作为开发服务器。问题是当我处于开发模式时。当我使用“bundleexecrailss”启动我的服务器并尝试呈现任何PDF时,整个过程会陷入僵局,因为当您呈现PDF时,会向服务器请求一些额外的资源,如图像和css,看起来只有一个线程.如何配置Rails开发服务器以运行多个工作线程?非常感谢。 最佳答案 我找到的最简单的解决方案是unicorn.geminstallunicorn创建一个unicorn.conf:worker_processes3然后使用它:

随机推荐