Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

YOLOv8 : RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase

Tags:

python

yolo

An attempt has been made to start a new process before the current process has finished its bootstrapping phase.

    This probably means that you are not using fork to start your
    child processes and you have forgotten to use the proper idiom
    in the main module:

        if __name__ == '__main__':
            freeze_support()
            ...

    The "freeze_support()" line can be omitted if the program
    is not going to be frozen to produce an executable.

** This error shows up when trying to train a YOLOv8 model in a python environment** from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.yaml")  # build a new model from scratch
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Use the model
results = model.train(data="coco128.yaml", epochs=3)  # train the model
results = model.val()  # evaluate model performance on the validation set
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image
success = YOLO("yolov8n.pt").export(format="onnx")  # export a model to ONNX format
like image 386
Prince David Nyarko Avatar asked Jan 22 '26 14:01

Prince David Nyarko


2 Answers

I managed to overcome this by keeping the model process code under the name of the top-level environment (if name == 'main':) , as seen below:

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.yaml")  # build a new model from scratch
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

if __name__ == '__main__':
    # Use the model
    results = model.train(data="coco128.yaml", epochs=3)  # train the model
    results = model.val()  # evaluate model performance on the validation set
    results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image
    success = YOLO("yolov8n.pt").export(format="onnx")  # export a model to ONNX format
like image 126
Prince David Nyarko Avatar answered Jan 24 '26 03:01

Prince David Nyarko


In python code, just mentioned workers=0. It will be fine.

e.g.

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8s-seg.yaml')  # build a new model from YAML
model = YOLO('yolov8s-seg.pt')  # load a pretrained model (recommended for training)
model = YOLO('yolov8s-seg.yaml').load('yolov8n.pt')  # build from YAML and transfer weights

# Train the model
results = model.train(data='./data/dataset.yaml', epochs=100, imgsz=640, workers=0)

like image 43
Codeholic Avatar answered Jan 24 '26 03:01

Codeholic