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
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
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With