diff --git a/README.md b/README.md index 087d88c..23a4d4e 100644 --- a/README.md +++ b/README.md @@ -203,7 +203,7 @@ See [Classification Docs](https://docs.ultralytics.com/tasks/classification/) fo - + diff --git a/README.zh-CN.md b/README.zh-CN.md index b5f7aff..805fb39 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -179,16 +179,16 @@ success = model.export(format="onnx") # 将模型导出为 ONNX 格式 - + -| Roboflow | ClearML ⭐ 新 | Comet ⭐ 新 | Neural Magic ⭐ 新 | -| :--------------------------------------------------------------------------------: | :-------------------------------------------------------------------------: | :-------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------: | -| 将您的自定义数据集进行标注并直接导出到 YOLOv8 以进行训练 [Roboflow](https://roboflow.com/?ref=ultralytics) | 自动跟踪、可视化甚至远程训练 YOLOv8 [ClearML](https://cutt.ly/yolov5-readme-clearml)(开源!) | 永远免费,[Comet](https://bit.ly/yolov5-readme-comet)可让您保存 YOLOv8 模型、恢复训练以及交互式可视化和调试预测 | 使用 [Neural Magic DeepSparse](https://bit.ly/yolov5-neuralmagic),运行 YOLOv8 推理的速度最高可提高6倍 | +| Roboflow | ClearML ⭐ 新 | Comet ⭐ 新 | Neural Magic ⭐ 新 | +| :--------------------------------------------------------------------------------: | :-------------------------------------------------------------------------: | :--------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------: | +| 将您的自定义数据集进行标注并直接导出到 YOLOv8 以进行训练 [Roboflow](https://roboflow.com/?ref=ultralytics) | 自动跟踪、可视化甚至远程训练 YOLOv8 [ClearML](https://cutt.ly/yolov5-readme-clearml)(开源!) | 永远免费,[Comet](https://bit.ly/yolov5-readme-comet2)可让您保存 YOLOv8 模型、恢复训练以及交互式可视化和调试预测 | 使用 [Neural Magic DeepSparse](https://bit.ly/yolov5-neuralmagic),运行 YOLOv8 推理的速度最高可提高6倍 | ##
Ultralytics HUB
diff --git a/ultralytics/__init__.py b/ultralytics/__init__.py index e368ad0..ab8c107 100644 --- a/ultralytics/__init__.py +++ b/ultralytics/__init__.py @@ -1,6 +1,6 @@ # Ultralytics YOLO 🚀, GPL-3.0 license -__version__ = "8.0.38" +__version__ = "8.0.39" from ultralytics.yolo.engine.model import YOLO from ultralytics.yolo.utils.checks import check_yolo as checks diff --git a/ultralytics/yolo/data/dataset.py b/ultralytics/yolo/data/dataset.py index 5f98120..ef6e5b8 100644 --- a/ultralytics/yolo/data/dataset.py +++ b/ultralytics/yolo/data/dataset.py @@ -45,8 +45,6 @@ class YOLODataset(BaseDataset): def cache_labels(self, path=Path("./labels.cache")): # Cache dataset labels, check images and read shapes - if path.exists(): - path.unlink() # remove *.cache file if exists x = {"labels": []} nm, nf, ne, nc, msgs = 0, 0, 0, 0, [] # number missing, found, empty, corrupt, messages desc = f"{self.prefix}Scanning {path.parent / path.stem}..." @@ -86,11 +84,13 @@ class YOLODataset(BaseDataset): x["msgs"] = msgs # warnings x["version"] = self.cache_version # cache version if is_dir_writeable(path.parent): + if path.exists(): + path.unlink() # remove *.cache file if exists np.save(str(path), x) # save cache for next time path.with_suffix(".cache.npy").rename(path) # remove .npy suffix LOGGER.info(f"{self.prefix}New cache created: {path}") else: - LOGGER.warning(f"{self.prefix}WARNING ⚠️ Cache directory {path.parent} is not writeable") # not writeable + LOGGER.warning(f"{self.prefix}WARNING ⚠️ Cache directory {path.parent} is not writeable, cache not saved.") return x def get_labels(self): diff --git a/ultralytics/yolo/engine/model.py b/ultralytics/yolo/engine/model.py index b00b578..72c32a6 100644 --- a/ultralytics/yolo/engine/model.py +++ b/ultralytics/yolo/engine/model.py @@ -101,6 +101,7 @@ class YOLO: self.model, self.ckpt = weights, None self.task = guess_model_task(weights) self.ckpt_path = weights + self.overrides['model'] = weights self.ModelClass, self.TrainerClass, self.ValidatorClass, self.PredictorClass = self._assign_ops_from_task() def _check_is_pytorch_model(self): diff --git a/ultralytics/yolo/engine/trainer.py b/ultralytics/yolo/engine/trainer.py index 78a6b32..3f817f3 100644 --- a/ultralytics/yolo/engine/trainer.py +++ b/ultralytics/yolo/engine/trainer.py @@ -184,7 +184,7 @@ class BaseTrainer: finally: ddp_cleanup(self, file) else: - self._do_train(int(os.getenv("RANK", -1)), world_size) + self._do_train(RANK, world_size) def _setup_ddp(self, rank, world_size): # os.environ['MASTER_ADDR'] = 'localhost'