训练YOLOv5模型时遇runs\train\exp10非目录错误求助
解决YOLOv5训练时TensorBoard目录创建失败问题
问题描述
训练YOLOv5自定义数据时持续报错:
train: weights=yolov5s.pt, cfg=models/yolov5s.yaml, data=data.yaml, hyp=data\hyps\hyp.scratch-low.yaml, epochs=300, batch_size=32, imgsz=640, rect=False, resume=False, nosave=False, noval=False, noautoanchor=False, noplots=False, evolve=None, evolve_population=data\hyps, resume_evolve=None, bucket=, cache=None, image_weights=False, device=, multi_scale=False, single_cls=False, optimizer=SGD, sync_bn=False, workers=8, project=runs\train, name=exp, exist_ok=False, quad=False, cos_lr=False, label_smoothing=0.0, patience=100, freeze=[0], save_period=-1, seed=0, local_rank=-1, entity=None, upload_dataset=False, bbox_interval=-1, artifact_alias=latest, ndjson_console=False, ndjson_file=False github: skipping check (not a git repository), for updates see https://github.com/ultralytics/yolov5 YOLOv5 2024-7-15 Python-3.12.2 torch-2.3.1+cpu CPU hyperparameters: 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=0.05, cls=0.5, cls_pw=1.0, obj=1.0, obj_pw=1.0, iou_t=0.2, anchor_t=4.0, fl_gamma=0.0, 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, mosaic=1.0, mixup=0.0, copy_paste=0.0 TensorBoard: Start with 'tensorboard --logdir runs\train', view at http://localhost:6006/ Traceback (most recent call last): File "C:\Users\Usuário\yolov5_work2024\yolov5-master\train.py", line 986, in <module> main(opt) File "C:\Users\Usuário\yolov5_work2024\yolov5-master\train.py", line 688, in main train(opt.hyp, opt, device, callbacks) File "C:\Users\Usuário\yolov5_work2024\yolov5-master\train.py", line 180, in train loggers = Loggers( ^^^^^^^^ File "C:\Users\Usuário\yolov5_work2024\yolov5-master\utils\loggers\__init__.py", line 121, in __init__ self.tb = SummaryWriter(str(s)) ^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Usuário\AppData\Local\Programs\Python\Python312\Lib\site-packages\torch\utils\tensorboard\writer.py", line 249, in __init__ self._get_file_writer() File "C:\Users\Usuário\AppData\Local\Programs\Python\Python312\Lib\site-packages\torch\utils\tensorboard\writer.py", line 281, in _get_file_writer self.file_writer = FileWriter( ^^^^^^^^^^^ File "C:\Users\Usuário\AppData\Local\Programs\Python\Python312\Lib\site-packages\torch\utils\tensorboard\writer.py", line 75, in __init__ self.event_writer = EventFileWriter(** ^^^^^^^^^^^^^^^^ File "C:\Users\Usuário\AppData\Local\Programs\Python\Python312\Lib\site-packages\tensorboard\summary\writer\event_file_writer.py", line 72, in __init__ tf.io.gfile.makedirs(logdir) File "C:\Users\Usuário\AppData\Local\Programs\Python\Python312\Lib\site-packages\tensorflow\python\lib\io\file_io.py", line 513, in recursive_create_dir_v2 _pywrap_file_io.RecursivelyCreateDir(compat.path_to_bytes(path)) tensorflow.python.framework.errors_impl.FailedPreconditionError: runs\train\exp10 is not a directory
已尝试的训练命令:
- 预训练权重训练:
python train.py --img 640 --batch 32 --epochs 300 --data data.yaml --weights yolov5s.pt
- 从头训练:
python train.py --img 640 --batch 32 --epochs 300 --data data.yaml --cfg models/yolov5s.yaml
已查阅相关问题但未找到可行方案。
解决方案
- 手动创建日志目录:直接在项目根目录下创建
runs\train文件夹,再手动创建报错中指定的子文件夹(如exp10),确保文件夹权限正常,当前用户有读写权限。 - 指定新的日志目录:训练时添加
--project参数指定一个全新的目录,绕开已有目录的异常问题:
python train.py --img 640 --batch 32 --epochs 300 --data data.yaml --weights yolov5s.pt --project new_runs/train
- 禁用TensorBoard日志:如果不需要训练过程可视化,添加
--noplots参数关闭日志写入:
python train.py --img 640 --batch 32 --epochs 300 --data data.yaml --weights yolov5s.pt --noplots
- 修复路径兼容问题:Windows系统下将命令中的路径分隔符改为正斜杠,或升级TensorFlow到最新版本,解决旧版本的路径处理bug。
- 检查目录权限:确认
runs目录及其子目录未被设置为只读,右键文件夹选择“属性”取消只读勾选,确保当前用户拥有读写权限。
内容的提问来源于stack exchange,提问作者Poguinho
相关产品推荐
相关产品推荐

