Pycharm连接远程服务器进行模型训练——以YOLOv8为例

目录

前言

问题解答

问题一:远程服务器有哪些,怎么选?

问题二:如何进行连接?

问题三:如何成功运行模型?

问题四:No module named 'ultralytics'?

问题五:如何更改配置?

问题六:训练过程中可能出现显存不够的情况


前言

本文主要记录笔者在利用运用远程服务器训练YOLOv8过程中遇到的问题,希望能帮助想要利用云算力进行训练的小白。注意:只有专业版的Pycharm才能连接远程服务器!

问题解答

问题一:远程服务器有哪些,怎么选?

回答:笔者使用过比较好的云服务器比如AutoDL算力云恒源云智星云 ,本文以AutoDL为例

问题二:如何进行连接?

回答:首先需要购买可用的云服务器(根据需求选取)

购买好并正常开机后会出现以下信息,图中可以看到有登录指令和密码,之后会用到

打开Pycharm,利用SSH创建新的解释器

复制AutoDL提供的登录指令和密码,例如登录指令为ssh -p 50529 root@region-5.autodl.com,则端口为50529,用户名为root

连接成功后,需要配置解释器的位置,一般均位于/root/miniconda3/bin/python

最后,等待一段时间就连接成功了,连接成功后会自动上传当前项目的所有文件

问题三:如何成功运行模型?

回答:YOLOv8官方的代码可以从github上获取(ultralytics/ultralytics: NEW - YOLOv8)。首先需要准备数据集(AutoDL也提供部分数据集,可参考另一篇文章的介绍here),并准备相关目录,需要新建runs文件夹用于存储训练结果等文件(运行过程会自动保存),在ultralytics/datasets中添加准备好的数据集,同时需要新建yaml配置文件

yaml配置文件内容如下。本文以目标检测为例,nc即表示需要检测的类别数,names存放类别名称(注意类别标号要和顺序一致),同时一定要注意path的路径,由于使用的远程服务器,需要知道当前项目存储在服务器的位置,并使用绝对路径的写法,否则后续会出现很多问题!

path: /tmp/pycharm_project_7/ultralytics/datasets/VOC2012/imageSet  # 数据集的根路径
train: ./train.txt # 训练集的相对路径
val: ./val.txt # 验证集的相对路径
#test:  test # test images (optional)

# Classes
nc: 20  # 写自己的类别数
names: ['aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair',
           'cow', 'diningtable', 'dog', 'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train',
           'tvmonitor']  # 对应类别名称

训练集与验证集的存放:

新建train.py文件,编写训练语句(也可以在终端输入命令进行训练),注意路径的写法,与上述一致,需要用绝对路径

from ultralytics import YOLO
import time

# 加载模型
model = YOLO("yolov8-p2.yaml")  # 从头开始构建新模型,根据需要可更改为其他的模型
# model = YOLO("yolov8s.pt")  # 加载预训练模型(建议用于训练)
#model = YOLO('yolov8s-cls.yaml').load('yolov8s-cls.pt')  # 从 YAML加载 然后再加载权重

begin = time.perf_counter()
# 使用模型
model.train(data="/tmp/pycharm_project_7/ultralytics/datasets/VOC2012/VOC2012.yaml")  # 训练模型
end = time.perf_counter()
# metrics = model.val()  # 在验证集上评估模型性能
# print(metrics.box.map)  # map50-95
# print(metrics.box.map50)  # map50
# print(metrics.box.map75)  # map75
# print(metrics.box.maps)  # 包含每个类别的map50-95列表
# print(metrics.box.mp)  # 所有类别的平均精度
# print(metrics.box.mean_results)  # 结果平均值
# print(metrics.speed)
# print(metrics.results_dict)  # 输出包含分类指标和适应性的字典
# print(metrics.keys)  # 输出结果字典的键列表

#results = model("https://ultralytics.com/images/bus.jpg")  # 对图像进行预测
success = model.export(format="onnx")  # 将模型导出为 ONNX 格式

print('训练时间: ', end-begin)

最后,开始训练即可。当训练完成后,需要将训练结果从远程服务器下载下来。注意需要下载到runs文件夹

问题四:No module named 'ultralytics'?

回答:解释器中没有ultralytics库,需要进行安装,将终端切换为远程服务器,在终端输入:pip install ultralytics即可

如果安装后没有解决问题,可尝试在解释器中搜索安装。若有其他的库没有安装,可采取相同的方式解决

问题五:如何更改配置?

回答:在default.yaml文件中修改即可

问题六:训练过程中可能出现显存不够的情况

回答:需要根据所购买的云服务器的显存大小来调整batch_size的大小,对于YOLOv8s一般batch=32大概需要7-8G显存左右,batch_size越大一般需要越多的显存,当然不同的模型占用的显存肯定也是不一样的,具体的信息可能需要在官方文档中查看,例如README.md文件

  • 44
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五倍子的代码空间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值