Comments (4)
👋 Hello @GabrielRMx, 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.
Requirements
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
Environments
YOLOv5 may be run in any of the following up-to-date verified environments (with all dependencies including CUDA/CUDNN, Python and PyTorch preinstalled):
- Notebooks with free GPU:
- Google Cloud Deep Learning VM. See GCP Quickstart Guide
- Amazon Deep Learning AMI. See AWS Quickstart Guide
- Docker Image. See Docker Quickstart Guide
Status
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.
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
from yolov5.
Hello! 😊
It looks like your concern revolves around the size of the best.pt
model file after training YOLOv5n on your custom dataset. The increase in size compared to the official YOLOv5n model size is likely due to the inclusion of optimizer states in your trained model file.
When you train a model, additional information besides the model weights, such as optimizer states and potentially extra layers tailored to your specific dataset, can be included in the .pt
file. This is a common reason for the file size increase.
Given that your training command seems properly configured for a YOLOv5n training, to reduce the size of your best.pt
file closer to the official size, you might consider using the --save-weights-only
flag in your training command. This way, only the model weights are saved, excluding optimizer information, which can significantly reduce the file size.
However, the stripped best.pt
model file you referenced is actually at 14.9MB, which suggests the optimizer has already been stripped out. So, the size difference is likely due to the model adapting to your custom dataset, which might result in a slightly larger file due to the customization process.
For further optimization options and detailed insights into managing model sizes, feel free to refer to the Ultralytics documentation: Ultralytics Docs.
Keep up the good work with your YOLOv5n project! If you have more questions, we're here to help.
from yolov5.
Thank you for your quick response. The information has been very useful to me, but i got another question. Exactly what should I take into account when preparing my custom dataset to obtain good results and good inference times like those of the official yolov5n model? My goal is actually to achieve the performance of official yolov5n model with my custom dataset, but what I get when training is a model with more size and slower
from yolov5.
@GabrielRMx hello! 😊 I'm glad to hear the information was helpful! Achieving good results and fast inference times with your custom dataset, similar to the official YOLOv5n model, involves optimizing a few key aspects:
-
Dataset Quality: Ensure your images are of good quality and the annotations are accurate. The variance in the dataset should represent the real-world scenarios where the model will be deployed.
-
Image Size: Training with the same image resolution as the official YOLOv5n model can help match its inference speed. Adjusting the
--img-size
parameter to match the YOLOv5n's default (usually 640) can be a good starting point. -
Model Complexity: Stay with simpler models (like yolov5n) for faster inference. Customizing network architecture might increase the model size and reduce inference speed.
-
Batch Size and Epochs: A larger batch size and more epochs could potentially increase model size due to overfitting. Use early stopping or monitor your validation loss to avoid overfitting.
-
Pruning and Quantization: After training, you can look into model pruning and quantization techniques to reduce the model size and speed up inference, though this might require additional tools or frameworks.
-
Optimization Flags: When training, use optimization flags like
--cache
or--weights yolov5n.pt
to start from pretrained weights.
Remember, achieving balance between speed, size, and accuracy often requires experimentation and fine-tuning. Each dataset is unique, and slight modifications might be needed to match the performance of the official models closely.
Here is an example adjustment to consider in your training command for maintaining the balance:
!python train.py --img 640 --batch 32 --epochs 100 --data your_dataset.yaml --cfg yolov5n.yaml --weights yolov5n.pt --cache
Adjust --batch
and --epochs
based on your dataset size and training capabilities for a start. Keep iterating! You're on the right path.
from yolov5.
Related Issues (20)
- Is it possible to add ShuffleNetV2 as backbone in the official repo? HOT 2
- Memory Error When Training YOLOv5 Using Git Bash HOT 4
- How to use tensor rt in yolov5 detection HOT 1
- resume_evolve BUG!!! HOT 3
- Classification training model error HOT 2
- How do Yolo target assignments to anchors work? HOT 3
- roc curve HOT 5
- Confusion Matrix wrong output HOT 2
- Zero recall and zero precision even after 100 epochs and pretrained weights HOT 2
- May I ask yolov5 how to port the method of calculating P, R, AP, MAP in val.py to adapt to detect.py, what code need to be packed? HOT 2
- CONVERT yolov5 TO onxx and openvino format HOT 4
- Inference model after convert to tflite file. HOT 16
- No detections on custom data training HOT 2
- Freeze detection on training HOT 2
- Why is the number of FP, TP calculated by val.py for a certain class different from the number predicted by detect.py and then calculated? HOT 1
- Saving Augmented Images HOT 1
- TensorRT is slower than pytorch HOT 7
- The accuracy of the .pt model will decrease after being converted to .engine model. HOT 4
- Guide on how to utilize 'Weighted Loss' method in yolov5 custom training HOT 2
- Extract information of Coordinates HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yolov5.