Open Aq114 opened 1 week ago
š Hello @Aq114, thank you for your interest in YOLOv5 š! Please visit our āļø Tutorials to get started, where you can find quickstart guides for simple tasks like Custom Data Training all the way to advanced concepts like Hyperparameter Evolution.
If this is a š Bug Report, please provide a minimum reproducible example to help us debug it.
If this is a custom training ā Question, please provide as much information as possible, including dataset image examples and training logs, and verify you are following our Tips for Best Training Results.
Python>=3.8.0 with all requirements.txt installed including PyTorch>=1.8. To get started:
git clone https://github.com/ultralytics/yolov5 # clone
cd yolov5
pip install -r requirements.txt # install
YOLOv5 may be run in any of the following up-to-date verified environments (with all dependencies including CUDA/CUDNN, Python and PyTorch preinstalled):
If this badge is green, all YOLOv5 GitHub Actions Continuous Integration (CI) tests are currently passing. CI tests verify correct operation of YOLOv5 training, validation, inference, export and benchmarks on macOS, Windows, and Ubuntu every 24 hours and on every commit.
We're excited to announce the launch of our latest state-of-the-art (SOTA) object detection model for 2023 - YOLOv8 š!
Designed to be fast, accurate, and easy to use, YOLOv8 is an ideal choice for a wide range of object detection, image segmentation and image classification tasks. With YOLOv8, you'll be able to quickly and accurately detect objects in real-time, streamline your workflows, and achieve new levels of accuracy in your projects.
Check out our YOLOv8 Docs for details and get started with:
pip install ultralytics
@Aq114 hello,
Thank you for reaching out and for providing detailed information about your issue. It sounds like you've encountered a KeyError
during inference with a model trained on Ultralytics HUB. Let's address this step-by-step.
The KeyError: 5059
suggests that the model is trying to access a class index that doesn't exist in the names
list. This can happen if there is a mismatch between the class indices in your dataset and the model's configuration.
Verify Class Names: Ensure that the class names in your dataset match those expected by the model. You can check the data.yaml
file used during training to confirm the class names and indices.
Update to Latest Versions: Make sure you are using the latest versions of YOLOv5 and PyTorch. This can resolve many issues related to compatibility and bugs.
pip install --upgrade torch
git pull https://github.com/ultralytics/yolov5
Reproduce the Issue: If the issue persists, please provide a minimum reproducible example. This helps us to investigate the problem more effectively. You can follow the guidelines here: Minimum Reproducible Example.
Local Inference: For performing local inference, you can use the following code snippet. Ensure that the best.pt
file is correctly specified and that the data.yaml
file is accessible.
import torch
# Load model
model = torch.hub.load('ultralytics/yolov5', 'custom', path='path/to/best.pt')
# Perform inference
img = 'path/to/your/image.jpg'
results = model(img)
# Print results
results.print()
results.save() # Save results to runs/hub
Batch Inference: If you need to perform batch inference on a test set, you can use the following approach:
import torch
from pathlib import Path
# Load model
model = torch.hub.load('ultralytics/yolov5', 'custom', path='path/to/best.pt')
# Directory containing test images
test_dir = Path('path/to/test/images')
# Perform inference on all images in the directory
for img_path in test_dir.glob('*.jpg'):
results = model(img_path)
results.save() # Save results to runs/hub
Currently, Ultralytics HUB supports online inference for individual images. For batch testing, you would need to perform inference locally as described above.
If you continue to face issues, please share the exact steps and code you are using, along with any additional error messages. This will help us provide more targeted assistance.
Thank you for your patience and understanding. The YOLO community and the Ultralytics team are here to support you!
Search before asking
Question
I have successfully trained several models on Ultratics HUB, and now I want to make the final test machine inference prediction. However, Ultratics HUB can only perform online inference by uploading a few images. I found in the subsequent section that entering relevant instructions at the local command line can perform local inference, such as Python segment/predict.py -- weights yolov5m seg.pt -- data data/images/bus.jpg, where the weights are replaced with the trained best.pt file and the data is replaced with a custom training set. However, during code execution, it shows YOLOv5n6u summary (fused): 253 layers, 4126316 parameters, 0 gradients, 7.2 GFLOPs Traceback (most recent call last): File "D:\DesktoI have successfully trained several models on Ultratics HUB, and now I want to make the final test machine inference prediction. However, Ultratics HUB can only perform online inference by uploading a few images. I found in the subsequent section that entering relevant instructions at the local command line can perform local inference, such as Python segment/predict.py -- weights yolov5m seg.pt -- data data/images/bus.jpg, where the weights are replaced with the trained best.pt file and the data is replaced with a custom training set. However, during code execution, it shows YOLOv5n6u summary (fused): 253 layers, 4126316 parameters, 0 gradients, 7.2 GFLOPs Traceback (most recent call last): File "D:\Desktop\YOLO5\yolov5\detect.py", line 312, in
main(opt)
File "D:\Desktop\YOLO5\yolov5\detect.py", line 307, in main
run(*vars(opt))
File "C:\Users\Y\AppData\Local\anaconda3\envs\yolov5\Lib\site-packages\torch\utils_contextlib.py", line 115, in decorate_context
return func(args, *kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "D:\Desktop\YOLO5\yolov5\detect.py", line 200, in run
s += f"{n} {names[int(c)]}{'s' (n > 1)}, " # add to string