(base) zuochunxue@tyw2:~$ yolo task=detect mode=train model=yolo11x.yaml data=FishEyeData01.yaml epochs=100 batch=64 Ultralytics 8.3.104 🚀 Python-3.12.7 torch-2.6.0+cu124 CUDA:0 (NVIDIA GeForce RTX 4070 Ti SUPER, 16064MiB) engine/trainer: task=detect, mode=train, model=yolo11x.yaml, data=FishEyeData01.yaml, epochs=100, time=None, patience=100, batch=64, imgsz=640, save=True, save_period=-1, cache=False, device=None, workers=8, project=None, name=train5, exist_ok=False, pretrained=True, optimizer=auto, verbose=True, seed=0, deterministic=True, single_cls=False, rect=False, cos_lr=False, close_mosaic=10, resume=False, amp=True, fraction=1.0, profile=False, freeze=None, multi_scale=False, overlap_mask=True, mask_ratio=4, dropout=0.0, val=True, split=val, save_json=False, save_hybrid=False, conf=None, iou=0.7, max_det=300, half=False, dnn=False, plots=True, source=None, vid_stride=1, stream_buffer=False, visualize=False, augment=False, agnostic_nms=False, classes=None, retina_masks=False, embed=None, show=False, save_frames=False, save_txt=False, save_conf=False, save_crop=False, show_labels=True, show_conf=True, show_boxes=True, line_width=None, format=torchscript, keras=False, optimize=False, int8=False, dynamic=False, simplify=True, opset=None, workspace=None, nms=False, lr0=0.01, lrf=0.01, momentum=0.937, weight_decay=0.0005, warmup_epochs=3.0, warmup_momentum=0.8, warmup_bias_lr=0.1, box=7.5, cls=0.5, dfl=1.5, pose=12.0, kobj=1.0, nbs=64, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, degrees=0.0, translate=0.1, scale=0.5, shear=0.0, perspective=0.0, flipud=0.0, fliplr=0.5, bgr=0.0, mosaic=1.0, mixup=0.0, copy_paste=0.0, copy_paste_mode=flip, auto_augment=randaugment, erasing=0.4, crop_fraction=1.0, cfg=None, tracker=botsort.yaml, save_dir=runs/detect/train5 Traceback (most recent call last): File "/root/anaconda3/lib/python3.12/site-packages/ultralytics/engine/trainer.py", line 582, in get_dataset data = check_det_dataset(self.args.data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/anaconda3/lib/python3.12/site-packages/ultralytics/data/utils.py", line 312, in check_det_dataset file = check_file(dataset) ^^^^^^^^^^^^^^^^^^^ File "/root/anaconda3/lib/python3.12/site-packages/ultralytics/utils/checks.py", line 546, in check_file raise FileNotFoundError(f"'{file}' does not exist") FileNotFoundError: 'FishEyeData01.yaml' does not exist The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/root/anaconda3/bin/yolo", line 8, in <module> sys.exit(entrypoint()) ^^^^^^^^^^^^ File "/root/anaconda3/lib/python3.12/site-packages/ultralytics/cfg/__init__.py", line 987, in entrypoint getattr(model, mode)(**overrides) # default args from model ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/anaconda3/lib/python3.12/site-packages/ultralytics/engine/model.py", line 785, in train self.trainer = (trainer or self._smart_load("trainer"))(overrides=args, _callbacks=self.callbacks) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/anaconda3/lib/python3.12/site-packages/ultralytics/engine/trainer.py", line 137, in __init__ self.trainset, self.testset = self.get_dataset() ^^^^^^^^^^^^^^^^^^ File "/root/anaconda3/lib/python3.12/site-packages/ultralytics/engine/trainer.py", line 586, in get_dataset raise RuntimeError(emojis(f"Dataset '{clean_url(self.args.data)}' error ❌ {e}")) from e RuntimeError: Dataset 'FishEyeData01.yaml' error ❌ 'FishEyeData01.yaml' does not exist
时间: 2025-07-16 14:28:40 浏览: 9
在使用 YOLO(如 YOLOv8)进行目标检测训练时,如果遇到如下错误:
```
Dataset 'FishEyeData01.yaml' error ❌ 'FishEyeData01.yaml' does not exist
```
这表明训练脚本无法找到指定的配置文件 `FishEyeData01.yaml`。以下是可能的解决方法:
### 1. 检查 YAML 文件的路径
确保 `FishEyeData01.yaml` 文件位于训练脚本所指定的路径中。YOLO 模型默认会在当前工作目录中查找 `.yaml` 配置文件。如果文件位于其他目录,需要提供完整的相对路径或绝对路径。例如:
```python
model.train(data="configs/FishEyeData01.yaml") # 使用相对路径
# 或
model.train(data="/home/user/project/configs/FishEyeData01.yaml") # 使用绝对路径
```
### 2. 验证 YAML 文件是否存在
确认 `FishEyeData01.yaml` 文件确实存在于项目目录中。可以通过命令行或文件管理器检查文件是否存在。在命令行中,可以使用以下命令验证:
```bash
ls configs/FishEyeData01.yaml
```
如果提示文件不存在,则需要将文件复制到正确位置或更新路径。
### 3. 检查 YAML 文件内容格式
YAML 文件的格式要求非常严格,特别是在冒号 (`:`) 后面必须有空格,并且路径应为相对路径或绝对路径。例如:
```yaml
path: /home/user/datasets/fisheye # 数据集根目录(冒号后有空格)
train: images/train # 训练集图像路径
val: images/val # 验证集图像路径
test: images/test # 测试集图像路径
nc: 1 # 类别数量
names: ['fish'] # 类别名称
```
### 4. 检查训练脚本的工作目录
运行训练脚本时,Python 的当前工作目录可能不是项目根目录。可以使用以下代码检查当前工作目录:
```python
import os
print(os.getcwd())
```
如果工作目录不是项目目录,可以通过 `cd` 命令切换目录,或在脚本中使用 `os.chdir()` 设置正确的目录。
### 5. 使用绝对路径代替相对路径
如果相对路径配置困难,可以尝试在 `FishEyeData01.yaml` 中使用绝对路径来指定数据集目录,例如:
```yaml
path: /home/user/datasets/fisheye
train: images/train
val: images/val
nc: 1
names: ['fish']
```
### 6. 检查文件扩展名是否正确
确保在调用 `model.train()` 时,指定的 `.yaml` 文件名拼写正确,包括大小写和扩展名。例如:
```python
model.train(data="FishEyeData01.yaml") # 正确
# 而不是
model.train(data="fishEyeData01.yaml") # 错误
```
### 7. 检查文件权限
确保 `FishEyeData01.yaml` 文件具有读取权限。可以使用以下命令更改权限:
```bash
chmod 644 FishEyeData01.yaml
```
### 示例训练脚本
以下是一个完整的训练脚本示例:
```python
from ultralytics import YOLO
if __name__ == "__main__":
model = YOLO("yolov8n.pt") # 加载预训练模型
model.train(data="configs/FishEyeData01.yaml", imgsz=640, epochs=100, batch=16)
```
---
阅读全文
相关推荐
















