Install Ultralytics
Install the ultralytics package with pip, conda, or Docker, or from source, then run your first prediction with a pretrained YOLO26 model. Every method installs all required dependencies listed in pyproject.toml.
Install or update the ultralytics package in a Python>=3.8 environment with PyTorch>=1.8:
pip install -U ultralyticsFor the latest development version, install directly from the Ultralytics GitHub repository:
pip install git+https://github.com/ultralytics/ultralytics.git@mainPyTorch requirements vary by operating system and CUDA version. To use a specific build, install PyTorch first by following the PyTorch installation instructions, then install ultralytics. For AMD GPUs on Linux, install a ROCm build of PyTorch as described in the AMD integration guide.
Use Ultralytics with CLI#
Run your first prediction from the terminal with the yolo command:
yolo predict model=yolo26n.ptThe pretrained yolo26n.pt weights download automatically, the model runs on two bundled sample images, and the command prints where it saved the annotated results, runs/detect/predict on a first run. Point source at your own image, video, directory, URL, or stream, or at a webcam with source=0:
yolo predict model=yolo26n.pt source=0 show=Truepredict is the mode, what to do with the model: train, val, predict, export, track, or benchmark. The task (detect, segment, semantic, depth, classify, pose, or obb) is read from the model file, so the yolo TASK MODE ARGS syntax usually needs only the mode plus arg=value pairs such as imgsz=640. See the CLI Guide for every mode and the Configuration page for all arguments.
Use Ultralytics with Python#
The same prediction in Python:
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # load a pretrained YOLO26n detection model
results = model("https://ultralytics.com/images/bus.jpg", save=True) # predict and save the annotated imageresults is a list of Results objects, one per image, carrying boxes, masks, keypoints, or class probabilities depending on the task. The Python Guide covers training, validation, export, and tracking with the same YOLO class.
Watch: Ultralytics YOLO Quick Start Guide
Ultralytics Settings#
Persistent settings such as the datasets, weights, and runs directories, the Ultralytics Platform API key, and experiment-logger toggles live in a JSON file managed with yolo settings. See the Settings page to view, change, or reset them.
What's Next#
Browse the modes YOLO runs in, the tasks it supports, and the YOLO26 model sizes, then train on your own data after formatting it with the Datasets guide.
For a look ahead, explore YOLO27 (Coming Soon). Its models are not yet available; the examples above use the released YOLO26 family.
FAQ#
Install Ultralytics with pip using:
pip install -U ultralyticsThis installs the latest stable release of the
ultralyticspackage from PyPI. To install the development version directly from GitHub:pip install git+https://github.com/ultralytics/ultralytics.gitEnsure the Git command-line tool is installed on your system.
Yes, create a conda environment with Python and Ultralytics YOLO in one command, then activate it:
conda create --name ultralytics-env -c conda-forge python=3.11 ultralytics torchvision -y conda activate ultralytics-envConda is an alternative to pip that resolves compatible versions of all packages together. For CUDA environments, add the
pytorch-gpumetapackage to the same command so conda selects a CUDA-enabled PyTorch build:conda create --name ultralytics-env -c conda-forge python=3.11 ultralytics torchvision pytorch-gpu -y conda activate ultralytics-envFor more instructions, see the Conda quickstart guide.
Docker provides an isolated, consistent environment for Ultralytics YOLO, so the same setup runs across systems without local installation issues. Official Docker images are available on Docker Hub, with variants for GPU, CPU, ARM64, NVIDIA Jetson, and Conda. To pull and run the latest image:
# Pull the latest ultralytics image from Docker Hub sudo docker pull ultralytics/ultralytics:latest # Run the ultralytics image in a container with GPU support sudo docker run -it --ipc=host --device nvidia.com/gpu=all ultralytics/ultralytics:latestOn Linux, CDI device requests require Docker >= 28.2.0 and NVIDIA Container Toolkit >= 1.18. For detailed Docker instructions, see the Docker quickstart guide.
Clone the Ultralytics repository and set up a development environment with:
# Clone the ultralytics repository git clone https://github.com/ultralytics/ultralytics # Navigate to the cloned directory cd ultralytics # Install the package in editable mode for development pip install -e .This allows contributions to the project or experimentation with the latest source code. For forks and pinning a custom branch, see Development Installation.
The Ultralytics YOLO CLI runs every task and mode from your terminal with single-line commands, so you can train, validate, predict, and export without writing Python code. The basic syntax is:
yolo TASK MODE ARGSFor example, to train a detection model:
yolo train data=coco8.yaml model=yolo26n.pt epochs=10Explore more commands and usage examples in the full CLI Guide.
Comments57
Ask a question, share your results, or help someone else.
Debawy
Can you add this commands to relevant files
import os os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
to work around this error
OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized. OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.
To Reproduce
1
Glenn JocherUltralyticsThanks for pointing that out! While setting the
KMP_DUPLICATE_LIB_OKenvironment variable can indeed provide a workaround for the multiple copies of the OpenMP runtime error, it's generally recommended to address the root cause by ensuring only a single OpenMP runtime is linked, as indicated by the error message itself. ๐ ๏ธInjecting this workaround directly into the Ultralytics files might inadvertently mask underlying issues for some users. For those facing this specific error and understanding the associated risks, applying the workaround in their environment or at the beginning of their scripts before importing any other libraries can offer a temporary solution:
import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"Before applying this workaround, I'd suggest investigating the installation and dependencies of the libraries involved to identify possible conflicts with the OpenMP runtime. Feel free to reach out if you run into any hurdles while exploring these avenues. Happy coding! ๐
1
D3RK0
Problem
I am getting the following message:
View Ultralytics Settings with 'yolo settings' or at '/home/s3115879/.config/Ultralytics/settings.json' Update Settings with 'yolo settings key=value', i.e. 'yolo settings runs_dir=path/to/dir'. For help see https://docs.ultralytics.com/quickstart/#ultralytics-settings.``` I am using a script to train four models, one which is the YOLOv8 model. However, when I train one of the other models, I am getting this message as part of training screen output. I am surmising that it is leaking from the Ultralytics package import at the beginning of my script. # Question How can I solve this? Many thanks!
Glenn JocherUltralytics@D3RK0 the message you are seeing is expected and indicates that Ultralytics has initialized its settings file. It is triggered when the
ultralyticspackage is imported. To suppress this output, you can redirect or filter the logs in your script. For more details on managing settings, refer to the Ultralytics Settings Guide. Let me know if you need further clarification.
serna01
I have my setting file: ยจ { "settings_version": "0.0.6", "datasets_dir": "/mnt/aiongpfs/users/aserna/2022-utils-main", "weights_dir": "weights", "runs_dir": "runs", "uuid": "d35778183b9f05d1160fdafdfe94267790d645e372ef7fefb95e8edcd6205215", "sync": true, "api_key": "", "openai_api_key": "", "clearml": true, "comet": true, "dvc": true, "hub": true, "mlflow": true, "neptune": true, "raytune": true, "tensorboard": true, "wandb": false, "vscode_msg": true } " and when i run my code " from ultralytics import YOLO
Initialize model and specify the checkpoint
#model = YOLO('yolo11n.pt') # Use a pretrained YOLO model model = YOLO('yolov8s.pt') #model = YOLO('runs/detect/train19/weights/best.pt') # Use a pretrained YOLOv8 model
Train the model with custom dataset
model.train( data='stream1.yaml', # Path to YAML config epochs=25, # Number of epochs imgsz=640, # Image size batch=16, # Batch size device=0, # GPU device ID fraction=0.5, workers=1
)
metrics = model.val(data='stream1.yaml', imgsz=640) print(metrics)" i get the following error "FileNotFoundError: Dataset 'stream1.yaml' images not found โ ๏ธ, missing path '/mnt/aiongpfs/users/aserna/2022-utils-main/stream-1/datasets/stream-1/images/val' Note dataset download directory is '/mnt/aiongpfs/users/aserna/2022-utils-main/stream-1/datasets'. You can update this in '/home/users/aserna/.config/Ultralytics/settings.json' " , with my stream1.yaml "path: stream-1/ # Path to your data folder train: images/train # Folder with training images val: images/val # Folder with validation images test: images/test nc: 11 names: # Class names and indexes 0: proba_2 1: cheops 2: debris 3: double_star 4: earth_observation_sat_1 5: lisa_pathfinder 6: proba_3_csc 7: proba_3_ocs 8: smart_1 9: soho 10: xmm_newton " so i go back and check the settings.json and somehow its adding information ( i dont know how) to the filepath "{ "settings_version": "0.0.6", "datasets_dir": "/mnt/aiongpfs/users/aserna/2022-utils-main/stream-1/datasets", "weights_dir": "weights", "runs_dir": "runs", "uuid": "d35778183b9f05d1160fdafdfe94267790d645e372ef7fefb95e8edcd6205215", "sync": true, "api_key": "", "openai_api_key": "", "clearml": true, "comet": true, "dvc": true, "hub": true, "mlflow": true, "neptune": true, "raytune": true, "tensorboard": true, "wandb": false, "vscode_msg": true }", its only happening with Yolo11, when I tried the same code with yolov8s it seems to be working work
Glenn JocherUltralytics@serna01 it seems like the issue is related to the dataset path in your
stream1.yamlfile. Please ensure the paths specified in your YAML file match the actual directory structure on your system. If the problem persists with YOLO11, consider verifying the settings in yoursettings.jsonto ensure they align with your dataset's location.serna01
yes, that was exactly my point, how could it be that the directory for one model is ok, but for v11 i get the error of filepath? Right now i am running the training with v8., but for some reason, when i just change the model name, it says that there ir an error reading the json file so it creates a new one, and that is why the new one has an incorrect file directory
Glenn JocherUltralyticsIt seems like the issue may be related to the dataset directory paths specified in your
stream1.yamlfile. Ensure that the paths are correctly set relative to thedatasets_dirin yoursettings.json. If the problem persists, try specifying the full path in your YAML file to see if that resolves the issue with YOLO11.
dnnxl
Hi! How can I plot some samples of the dataset with the bounding box for object detection before training with ultralytics? With the goal to check qualitatively the dataset is okay
Glenn JocherUltralytics@dnnxl to visualize dataset samples with bounding boxes before training, you can use the
ultralyticspackage to load your dataset and plot the images with annotations. This helps ensure your dataset is correctly labeled. For more detailed guidance, please refer to the Ultralytics documentation.
sivikt
Hey, here are some issues while using ultralytics~=8.2.0
I change settings, though it does not affect training process: runs are still go into "runs" under current directory, not under '/yolo_training/my_runs'
working_dir = Path('/yolo_training') ultralytics.settings.update({ 'runs_dir': str(working_dir/'my_runs'), 'weights_dir': str(working_dir/'my_weights'), 'datasets_dir': str(working_dir/'my_datasets') })I am trying to train Yolov10 as following
model = YOLO(model='yolov10l.pt', task='detect') train_results = model.train( data=str(dataset_cfg_path), val=True, epochs=1, batch=16, cache=False, workers=32, patience=3, verbose=True, device='0' )and here is another issue:
model.train()downloads 'yolov8n.pt'. Why it is so, if the model is defined asYOLO(model='yolov10l.pt', task='detect')?
Glenn JocherUltralytics@sivikt it seems like the settings update isn't being applied correctly. Ensure the settings are updated before any model operations. Regarding the model download issue, please verify the model path and ensure 'yolov10l.pt' is accessible. If the problem persists, try reinstalling the package to ensure all components are up to date.
1
CVPR-engineer
nice
omrir
I tried the basic install using 'pip install ultralytics' on computer with only CPU. I run the test CLI --> yolo detect predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg' Got strange result. A lot of bounding boxes uncorrected on the upper part of the image: I cannot paste an image here, so here this is the textual result: Found https://ultralytics.com/images/bus.jpg locally at bus.jpg image 1/1 C:\Users\Omri-Einat\Desktop\pythonProject\bus.jpg: 640x480 13 persons, 65 bicycles, 14 cars, 4 motorcycles, 4 buss, 1 train, 1 truck, 2 boats, 1 traffic light, 25 fire hydrants, 4 stop signs, 43 parking meters, 7 benchs, 3 cats, 1 horse, 1 elephant, 6 giraffes, 15 backpacks, 8 umbrellas, 53 handbags, 1 tie, 1 frisbee, 3 skiss, 2 baseball bats, 7 baseball gloves, 1 tennis racket, 1 hot dog, 1 pizza, 1 laptop, 1 remote, 4 cell phones, 1 microwave, 4 ov ens, 1 sink, 1328.2ms Speed: 0.0ms preprocess, 1328.2ms inference, 31.3ms postprocess per image at shape (1, 3, 640, 480)
Any idea?
Thanks!
Paula DerrengerUltralytics@omrir thank you for reporting this issue. It seems like the model is producing an unusually high number of detections. This could be due to a bug or an issue with the specific model version. Please ensure you are using the latest version of the
ultralyticspackage by runningpip install -U ultralytics. If the problem persists, try using a different pre-trained model or adjusting the confidence threshold with theconfargument to filter out low-confidence detections. If the issue continues, please provide more details so we can investigate further.omrir
I performed what you suggested. Also tried different model and higher confidence. Still the same result:
Successfully installed ultralytics-8.2.71
[notice] A new release of pip is available: 23.2.1 -> 24.2 [notice] To update, run: python.exe -m pip install --upgrade pip PS C:\Users\Desktop\pythonProject> yolo detect predict model=yolov8s.pt source='https://ultralytics.com/images/bus.jpg' Ultralytics YOLOv8.2.71 ๐ Python-3.10.7 torch-2.4.0+cpu CPU (Intel Core(TM) i5-3570 3.40GHz) YOLOv8s summary (fused): 168 layers, 11,156,544 parameters, 0 gradients, 28.6 GFLOPs
Found https://ultralytics.com/images/bus.jpg locally at bus.jpg image 1/1 C:\Users\Desktop\pythonProject\bus.jpg: 640x480 15 persons, 35 bicycles, 1 car, 7 motorcycles, 9 boats, 4 traffic lights, 29 fire hydrants, 2 stop signs, 18 parking meters, 3 benchs, 1 cow, 19 backpacks, 38 hand bags, 9 frisbees, 8 skiss, 2 baseball bats, 4 baseball gloves, 3 tennis rackets, 6 forks, 1 knife, 3 spoons, 1 hot dog, 1 dining table, 75 cell phones, 1 oven, 1 clock, 2 hair driers, 2 toothbrushs, 1328.1ms Speed: 0.0ms preprocess, 1328.1ms inference, 31.2ms postprocess per image at shape (1, 3, 640, 480) Results saved to runs\detect\predict8 ๐ก Learn more at https://docs.ultralytics.com/modes/predict PS C:\Users\Desktop\pythonProject> yolo detect predict model=yolov8m.pt conf=0.7 source='https://ultralytics.com/images/bus.jpg' Ultralytics YOLOv8.2.71 ๐ Python-3.10.7 torch-2.4.0+cpu CPU (Intel Core(TM) i5-3570 3.40GHz) YOLOv8m summary (fused): 218 layers, 25,886,080 parameters, 0 gradients, 78.9 GFLOPs
Found https://ultralytics.com/images/bus.jpg locally at bus.jpg image 1/1 C:\Users\Desktop\pythonProject\bus.jpg: 640x480 9 persons, 2 bicycles, 30 cars, 20 airplanes, 13 buss, 2 boats, 7 fire hydrants, 2 parking meters, 2 benchs, 1 dog, 1 horse, 4 sheeps, 1 backpack, 57 umbrellas, 7 handbags, 1 tie, 21 frisbees, 1 skis, 1 snowboard, 2 sports balls, 4 kites, 46 baseball bats, 1 skateboard, 3 surfboards, 3 tennis rackets, 12 bottles, 2 cups, 12 forks, 4 knifes, 19 spoons, 1 banana, 2 pizzas, 3 dining tables, 1 re mote, 2 vases, 1 toothbrush, 2906.4ms Speed: 15.6ms preprocess, 2906.4ms inference, 0.0ms postprocess per image at shape (1, 3, 640, 480) Results saved to runs\detect\predict9 ๐ก Learn more at https://docs.ultralytics.com/modes/predict
omrir
I also see that all bounding boxes have probability of 1.
Paula DerrengerUltralyticsThank you for the detailed feedback. The issue with all bounding boxes having a probability of 1 and the excessive number of detections suggests a potential bug. Please ensure you are using the latest version of the
ultralyticspackage. If the issue persists, try running the model on a different image or dataset to see if the problem is consistent. If it is, please open an issue on our GitHub repository with details about your environment and the steps to reproduce the issue. This will help us investigate and resolve the problem more effectively.
Miseson2024
Thank you for this great application! It has been amazing detecting objects with high occlusion successfully although I am a real Python beginner.
I successfully trained a model myself using Spyder in Anaconda navigator after setting everything myself. I also successfully predicted objects in my own dataset until my Anaconda navigator stopped working when I tried to install an application at certain point. So, now I have uninstalled everything and reinstalled Python this time without Anaconda: Python and Spyder connected with kernels. Before, I did not like that I could not use pip due to Anaconda. I installed Ultralytics and PyTorch following the instruction. However, the prediction is completely wrong although the console does not show any error message. I have no clue what I should troubleshoot. What do you think is wrong?
Paula DerrengerUltralytics@Miseson2024 thank you for your kind words! It sounds like you've done a great job setting up and using Ultralytics YOLO so far. Given that your predictions are now incorrect after reinstalling Python and Spyder, I recommend checking a few things:
- Ensure you have the latest versions of Ultralytics and PyTorch installed. You can update them using
pip install -U ultralytics torch. - Verify that your model and dataset paths are correctly specified and accessible.
- Check if your model weights were correctly saved and loaded. Sometimes, re-training the model can help if the weights are corrupted.
If the issue persists, please try running your script outside of Spyder to see if the problem is specific to the IDE. For more detailed troubleshooting, refer to our Quickstart Guide.
1- Ensure you have the latest versions of Ultralytics and PyTorch installed. You can update them using
Miseson2024
Thank you, @pderrenger!
jonaChong70
Please be specific on the conflict errors. It will be helpful to post the errors. On Thursday 11 July 2024 at 05:42:24 pm GMT+8, Adeel Akram @.***> wrote:
Hi all,
Does anybody tried building a conda envirionment? I tried it by first installing latest PyTorch (CPU) for conda and then by installing Ultralytics for conda. I got a lot of conflict errors. However, installing ultralytics from PyPI inside conda environemnt works fine. I think there should be recommended versions for both PyTorch and Ultralytics.
โ Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>
Paula DerrengerUltralytics(edited)@jonaChong70 hi Adeel,
Thank you for reaching out! ๐
To address your issue with building a conda environment, it would be very helpful if you could provide specific conflict error messages you encountered. This will allow us to better understand and troubleshoot the problem.
In the meantime, here are some steps you can follow to ensure a smooth installation:
-
Install all packages together: When working in a CUDA environment, it's best practice to install
ultralytics,torchvisionandpytorch-gpufrom conda-forge in a single command (PyTorch no longer publishes to thepytorchchannel). This helps the conda package manager resolve any conflicts. For example:conda create --name ultralytics-env -c conda-forge python=3.11 ultralytics torchvision pytorch-gpu -y -
Verify package versions: Ensure you are using the latest versions of all packages. Sometimes, conflicts arise from outdated dependencies.
-
Reproducible example: If the issue persists, please provide a minimum reproducible example. This will help us diagnose the problem more effectively. You can find guidance on creating a reproducible example here.
If you prefer using pip within a conda environment and it works fine for you, that's also a valid approach. However, the conda installation should ideally work without issues, and we're here to help resolve any conflicts you encounter.
Feel free to share the error logs, and we'll assist you further!
-
a-akram(edited)
Hi all,
Has anybody tried building a conda environment? I tried it by installing the latest PyTorch (CPU) for conda and then by installing Ultralytics for conda. I got a lot of conflict errors. However, installing ultralytics from PyPI inside the conda environment works fine. I think there should be recommended versions for both PyTorch and Ultralytics.
Paula DerrengerUltralytics(edited)@a-akram hi there,
Thank you for reaching out! It sounds like you're encountering dependency conflicts when trying to set up a conda environment for Ultralytics. This can sometimes happen due to the complex nature of package dependencies.
To help resolve this, I recommend installing all necessary packages in a single command to allow conda to manage dependencies more effectively. Here's a command that should help:
conda create --name ultralytics-env -c conda-forge python=3.11 ultralytics torchvision pytorch-gpu -yThis command creates a new environment and installs
ultralytics,torchvisionand a CUDA-enabled PyTorch (pytorch-gpu) from conda-forge together, which can help avoid conflicts. For CPU only, droppytorch-gpu. PyTorch no longer publishes new releases to thepytorchconda channel.If you continue to experience issues, please ensure you are using the latest versions of all packages. You can check for updates and install the latest versions using:
conda update --allActivate the new environment with
conda activate ultralytics-env.For more detailed guidance, you can refer to our Quickstart Guide.
If you have any further questions or need additional assistance, feel free to ask. Happy coding! ๐