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

相关文章

  • RSync实现文件备份同步详解

    RSync实现文件备份同步详解

    rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息
    2016-03-03
  • 如何使用linux+nginx 作为unity webgl的服务器

    如何使用linux+nginx 作为unity webgl的服务器

    使用Linux和Nginx作为UnityWebGL项目的服务器时,建议通过命令行下载Nginx,并采用源码编译方式,配置Nginx的html路径为绝对路径,并启动Nginx服务,此方法适用于希望在Linux环境下部署UnityWebGL应用的开发者
    2024-11-11
  • Memcached 入门介绍(安装与配置)

    Memcached 入门介绍(安装与配置)

    Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度
    2014-08-08
  • 一文让你知道服务器是什么

    一文让你知道服务器是什么

    服务器指的是网络环境下能为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供某种服务的专用计算机,它比普通计算机运行更快、负载更高、价格更贵,服务器具有高速的CPU运算能力、长时间的可靠运行、强大的I/O外部数据吞吐能力以及更好的扩展性
    2023-08-08
  • ROS参数服务器中的理论模型与参数操作(C++)

    ROS参数服务器中的理论模型与参数操作(C++)

    在C++中实现参数服务器数据的增删改查,均可以通过两套API实现分别是ros::NodeHandle和ros::param,这篇文章主要介绍了ROS参数服务器--理论模型与参数操作(C++),需要的朋友可以参考下
    2023-08-08
  • jenkins 配置用户角色权限的实现方法

    jenkins 配置用户角色权限的实现方法

    这篇文章主要介绍了jenkins 配置用户角色权限的实现方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • 搭建hMailServer服务实现远程发送邮件的图文教程

    搭建hMailServer服务实现远程发送邮件的图文教程

    hMailServer是一个邮件服务器,通过它我们可以搭建自己的邮件服务,本文主要介绍了搭建hMailServer服务实现远程发送邮件的图文教程,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • 服务发现与负载均衡机制Service实例创建

    服务发现与负载均衡机制Service实例创建

    这篇文章主要为大家介绍了服务发现与负载均衡机制Service实例创建有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • Centos服务器部署前后端项目的实战教程

    Centos服务器部署前后端项目的实战教程

    这篇文章主要介绍了Centos服务器部署前后端项目的实战教程,本文通过实例图文结合实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2024-02-02
  • k8s查看各组件日志的方法图文详解

    k8s查看各组件日志的方法图文详解

    这篇文章主要给大家介绍了关于k8s查看各组件日志的方法,Kubernetes(简称K8s)已成为现代容器化应用程序管理的主要平台之一,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-09-09

最新评论