-
-
Notifications
You must be signed in to change notification settings - Fork 16.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Similar mAP when splitting data into train, val and test #13262
Comments
👋 Hello @n-patricia, 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. RequirementsPython>=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 EnvironmentsYOLOv5 may be run in any of the following up-to-date verified environments (with all dependencies including CUDA/CUDNN, Python and PyTorch preinstalled):
StatusIf 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. Introducing YOLOv8 🚀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 |
@n-patricia hi there, Thank you for sharing your observations and detailed results! It's great to see your interest in optimizing your training process with YOLOv5. From your description, it seems like the issue might be related to the dataset split and the size of your dataset. Here are a few points to consider:
Here is an example of how you might structure your dataset configuration for a larger dataset: train: images/train # train images (relative to 'path')
val: images/val # val images (relative to 'path')
test: images/test # test images (optional) And for training, you can use: python train.py --data custom.yaml --weights yolov5x.pt --epochs 300 If you continue to face issues, please ensure you are using the latest version of YOLOv5 and provide additional details such as training logs, loss curves, and any other relevant metrics. This will help us diagnose the problem more effectively. Feel free to reach out if you have any more questions or need further assistance. Happy training! 🚀 |
@glenn-jocher thank you for your response. I understand your point. The problem from this data is imbalanced dataset. I tried to select 40 classes, with range from 13k to 200 samples per class. I just randomized the images for train and val set, because it is difficult to select balance classes for each set. Do you think it is better to let the algorithm select the samples by itself because of the imbalanced problem? |
Hi @n-patricia, Thank you for your detailed follow-up! Imbalanced datasets can indeed pose challenges during training, but there are several strategies you can employ to mitigate these issues and improve your model's performance. Strategies for Handling Imbalanced Datasets
Example: Using Class WeightsHere's an example of how you might set class weights in your training script: # Example of setting class weights
class_weights = [1.0, 2.0, 0.5, ...] # Adjust these values based on your class distribution Automated Sample SelectionRegarding your question about letting the algorithm select the samples, YOLOv5 does not currently have an automated sample selection feature based on class balance. However, you can implement a custom data loader that ensures balanced batches during training. Next Steps
Feel free to share your results or any further questions you might have. The YOLO community and Ultralytics team are here to help you achieve the best possible results with your model. Good luck! 🚀 |
Question
Hi,
I use yolov5x with this setting (train: 70%, val: 10%, test: 20%)
I get similar mAP starts from epoch 18. The columns here are precision, recall, mAP0.5, mAP0.95.
However when I don't divide the training data, the metrics keep increasing until 300 epochs.
I use hyp-scratch-low for both experiments. The reason I do this is bacause I want to try my custom dataset like GlobalWheat2020 after this. Do I miss anything?
Additional
No response
The text was updated successfully, but these errors were encountered: