服务器or本地项目部署全流程及常见问题记录

 更新时间:2024年11月12日 12:10:35   作者:E导带你发论文  
本文详细介绍了在Windows、Linux和Ubuntu系统中部署YOLOv5项目的过程,包括准备工作、PyCharm连接远程服务器、项目环境配置、训练教程以及训练过程中的小技巧

同志们大家好,今天出一期在windows、linux & ubantu系统中部署yolo or rtdetr项目的流程,供小白快速入门!(声明:以下流程均在蓝耘GPU平台和魔鬼面具的rtdetr项目下进行,其他项目如yolo系列均可使用该方法)

一、准备工作

在此之前需要提前下载以下工具

1.显卡资源(自用电脑 或 服务器平台

2.Pycharm专业版,Vscode,或GPU平台的Jupyter界面(以下教程在Pycharm专业版中展示)

3.XFTP文件传输助手(个人习惯,可使用其他文件传输软件,较为方便)

相关链接附文章末尾

二、pycharm连接远程服务器方法

以下流程均在b站有对应视频
0.首先需要先找到远程服务器的ssh链接及密码,例如 

ssh -p 20733 root@link.lanyun.net
rppfoklk5zmp22su

1.打开pycharm专业版,依次点击工具---部署--配置

2.添加新配置,按以下图片流程添加ssh信息,测试连接(不懂请看b站视频)

3.打开远程主机Remote Host(远程服务器目录)

4.打开远程终端

三、项目环境配置---RTDETR 和YOLO环境相同

1.本地需要提前准备好Conda环境以便安装虚拟环境及torch及后续操作

conda create -n yolo python=3.8 #创建虚拟环境(云GPU若有对应环境可不用创建)
conda init(可选)
conda activate(可选)
conda activate yolo  #进入虚拟环境
#yolo可替换其他名字

2.云GPU服务器直接选定以下torch和cuda版本直接部署,或创建虚拟环境后按装下方相关包。

以下代码装好虚拟环境后可直接全部复制进去,或者一条一条复制,一般不会出现报错情况。
(若网络下载过慢,可尝试切换其他镜像源)

pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117  -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install timm==0.9.8 thop efficientnet_pytorch==0.7.1 einops grad-cam==1.4.8 dill==0.3.6 albumentations==1.3.1 pytorch_wavelets==1.3.0 tidecv    -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -U openmim -i https://pypi.tuna.tsinghua.edu.cn/simple
        mim install mmengine  -i https://pypi.tuna.tsinghua.edu.cn/simple
        mim install "mmcv>=2.1.0"  -i https://pypi.tuna.tsinghua.edu.cn/simple
apt-get update 
apt install libgl1-mesa-glx 
pip install psutil -i https://pypi.tuna.tsinghua.edu.cn/simple

3.装好环境的同时将魔导的项目文件上传进去,可以用XFTP上传或直接上传

首先使用XFTP连接远程服务器

四、训练教程---RTDETR 和YOLO相同

1.终端下解压项目文件
①unzip RTDETR-20241020.zip (解压指令)

②cd RTDETR-main/  (cd到文件目录下)

③修改数据集路径(使用项目默认数据集测试,修改后上传保存)

④运行python train.py 指令提示报错,原因是因为路径错误,datasets出现了两次

vim /root/.config/Ultralytics/settings.yaml  (---vim到上方报错路径)
按键盘上的“i”键进入改写模式,删除路径后方的datasets,改成以下路径后按ESC退出改写模式后,按Shift+Z+Z保存代码退出

⑥再次运行python train.py 指令后成功运行,或者可能会出现字体下载卡顿
如出现以下卡顿情况,请点击下载链接在本地下载后上传到和train.py同级目录,然后在终端使用以下指令:即可解决该问题,

mv Arial.ttf /root/.config/Ultralytics/Arial.ttf

最后成功运行代码

后续更换数据集的话,则按照以上格式,自行根据实际情况更改数据集即可

五、训练过程中的一些小技巧

1.使用nohup指令进行后台训练,防止因断网导致的中断等情况
①使用python train.py指令的话 你电脑网络环境发生变化时(则你的训练后中断,比如开关vpn,电脑息屏,网络不稳定)
②使用nohup python train-s.py > log.log 2>&1   指令的话,你跑通后电脑不管是关机还是啥,他代码都会在服务器后台跑,和自己电脑没关系)

nohup python train.py > log.log 2>&1         
nohup python train-1.py > log1.log 2>&1
nohup python train-2.py > log2.log 2>&1
nohup python train-3.py > log3.log 2>&1
#----服务器训练代码请使用nohup指令在后台跑,
然后目录下会出现log.log的日志文件,存放你的所有打印的信息
以上默认为0卡跑,若存在多卡,请在指令前加 CUDA_VISIBLE_DEVICES=1  
例如 
CUDA_VISIBLE_DEVICES=1  nohup python train-s.py > log.log 2>&1
......

2.查看是否跑完 nvidia-smi,//查看显存变化,如果跑一个实验占了8个G显存,然后显存变成0的时候就说明跑完了

3.查看跑到哪一轮了,精度是多少 查看runs/train/exp文件里面的result.csv,主要查看map50 和map50-95 的涨点情况

4.查看代码是否报错,打开日志log.log查看代码报错情况

5.运行一次代码,会出现一个进程号,若代码开始跑了,想提前中断的话,请使用ps aux 指令查看PID进程号了,并且使用kill -9 进程号 中断该进程并释放显存
一些常用终端指令
rm -rf datasets/     ----删除datasets文件夹
unzip dataset.zip  ----解压dataset文件夹--xftp最好传输压缩包格式文件,这样快
③复制文件请在xftp中ctrl cv复制粘贴

附上相关链接
①文章中项目代码请查看:GitHub - z1069614715/objectdetection_script: 一些关于目标检测的脚本的改进思路代码,详细请看readme.md

1.显卡资源(自用电脑 或 服务器平台)https://cloud.lanyun.net/#/activity?uuid=efa15431a91abaaf0bdeb212fffe685a

2.Pycharm专业版,Vscode,或GPU平台的Jupyter界面(以下教程在Pycharm专业版中展示)

3.XFTP文件传输助手(个人习惯,可使用其他文件传输软件,较为方便)

家庭/学校免费 - NetSarang Website

如有其他问题请在评论区指出,觉得有用的可以点赞评论,我们下期再见!

到此这篇关于服务器or本地项目部署全流程及常见问题的文章就介绍到这了,更多相关服务器本地项目部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • zlmediakit实现 rtsp流服务器的方法

    zlmediakit实现 rtsp流服务器的方法

    这篇文章主要介绍了zlmediakit实现 rtsp流服务器,本次实现是将内存中的H264数据经过zlmediakit实现为rtsp流,我用的是CAPI的方式,将zlmediakit作为一个sdk嵌入到自己的程序中而不是作为一个独立的进进程服务,需要的朋友可以参考下
    2024-04-04
  • 云服务器+ASF实现全天挂卡挂时长的方法

    云服务器+ASF实现全天挂卡挂时长的方法

    我的服务器部署在腾讯云上,系统为Ubuntu amd64,下面的wget使用了萌歪大大的GH代理,所以可以直接一条一条地输入,下面通过本文给大家分享云服务器+ASF实现全天挂卡挂时长的方法,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • dubbo的配置文件详解(推荐)

    dubbo的配置文件详解(推荐)

    这篇文章主要介绍了dubbo 配置文件详解(推荐),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • git多人协作_动力节点Java学院整理

    git多人协作_动力节点Java学院整理

    这篇文章主要介绍了git多人协作,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Prometheus+cpolar如何在手机上也能监控服务器状态?

    Prometheus+cpolar如何在手机上也能监控服务器状态?

    本文强调了通过 Cpolar 这一内网穿透工具,轻松突破Prometheus仅限于局域网访问的限制,实现外网随时随地访问监控数据,教你如何把Prometheus监控面板“搬”到手机上,随时随地掌握服务器健康状态_prometheus监控内网服务器
    2025-12-12
  • nginx/apache/php隐藏http头部版本信息的实现方法

    nginx/apache/php隐藏http头部版本信息的实现方法

    有时候我们需要隐藏我们的服务器版本信息,防止有心人士的研究,更安全,这里介绍下在nginx/apache/php中如何隐藏http头部版本信息的方法,有需要的朋友参考下吧
    2013-06-06
  • 搭建本地的idea激活服务器的详细教程

    搭建本地的idea激活服务器的详细教程

    这篇文章主要介绍了搭建本地的idea激活服务器的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • web.config(IIS)和.htaccess(Apache)配置

    web.config(IIS)和.htaccess(Apache)配置

    这些是我发现最有用的片段,/随时间推移使用最多的片段。 他们处理诸如从查询字符串,CORS标头重写URL以及强制HTTPS重定向之类的事情
    2019-11-11
  • cwRsync提示password file must be owned by root when running as root的解决方法

    cwRsync提示password file must be owned by root when running as

    今天在配置服务器的时候,用了rsync4.10版本,客户端是2003服务器端是2008 r2 同步的时候提示password file must be owned by root when running as root问题,以前用老版本的时候没见过,还好看了下面的文章解决了,特分享下
    2015-08-08
  • Tornado Web服务器中处理空白字符的解决方案

    Tornado Web服务器中处理空白字符的解决方案

    这篇文章主要介绍了Tornado Web服务器中处理空白字符的解决方案,本文通过修改Tornado源码解决这个问题,需要的朋友可以参考下
    2015-01-01

最新评论