当前位置:   article > 正文

Pycharm连接远程服务器进行模型训练——以YOLOv8为例_pycharm如何连接onethingai服务器跑yolo代码

pycharm如何连接onethingai服务器跑yolo代码

目录

前言

问题解答

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

问题二:如何进行连接?

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

问题四: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的路径,由于使用的远程服务器,需要知道当前项目存储在服务器的位置,并使用绝对路径的写法,否则后续会出现很多问题!

  1. path: /tmp/pycharm_project_7/ultralytics/datasets/VOC2012/imageSet # 数据集的根路径
  2. train: ./train.txt # 训练集的相对路径
  3. val: ./val.txt # 验证集的相对路径
  4. #test: test # test images (optional)
  5. # Classes
  6. nc: 20 # 写自己的类别数
  7. names: ['aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair',
  8. 'cow', 'diningtable', 'dog', 'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train',
  9. 'tvmonitor'] # 对应类别名称

训练集与验证集的存放:

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

  1. from ultralytics import YOLO
  2. import time
  3. # 加载模型
  4. model = YOLO("yolov8-p2.yaml") # 从头开始构建新模型,根据需要可更改为其他的模型
  5. # model = YOLO("yolov8s.pt") # 加载预训练模型(建议用于训练)
  6. #model = YOLO('yolov8s-cls.yaml').load('yolov8s-cls.pt') # 从 YAML加载 然后再加载权重
  7. begin = time.perf_counter()
  8. # 使用模型
  9. model.train(data="/tmp/pycharm_project_7/ultralytics/datasets/VOC2012/VOC2012.yaml") # 训练模型
  10. end = time.perf_counter()
  11. # metrics = model.val() # 在验证集上评估模型性能
  12. # print(metrics.box.map) # map50-95
  13. # print(metrics.box.map50) # map50
  14. # print(metrics.box.map75) # map75
  15. # print(metrics.box.maps) # 包含每个类别的map50-95列表
  16. # print(metrics.box.mp) # 所有类别的平均精度
  17. # print(metrics.box.mean_results) # 结果平均值
  18. # print(metrics.speed)
  19. # print(metrics.results_dict) # 输出包含分类指标和适应性的字典
  20. # print(metrics.keys) # 输出结果字典的键列表
  21. #results = model("https://ultralytics.com/images/bus.jpg") # 对图像进行预测
  22. success = model.export(format="onnx") # 将模型导出为 ONNX 格式
  23. 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文件

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/202038
推荐阅读
相关标签
  

闽ICP备14008679号