赞
踩
目录
问题四: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)
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
最后,开始训练即可。当训练完成后,需要将训练结果从远程服务器下载下来。注意需要下载到runs文件夹中
回答:解释器中没有ultralytics库,需要进行安装,将终端切换为远程服务器,在终端输入:pip install ultralytics即可
如果安装后没有解决问题,可尝试在解释器中搜索安装。若有其他的库没有安装,可采取相同的方式解决
回答:在default.yaml文件中修改即可
回答:需要根据所购买的云服务器的显存大小来调整batch_size的大小,对于YOLOv8s一般batch=32大概需要7-8G显存左右,batch_size越大一般需要越多的显存,当然不同的模型占用的显存肯定也是不一样的,具体的信息可能需要在官方文档中查看,例如README.md文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。