Reputation: 53
I tried to run Yolov8 on my computer using python 3.10.0, cuda 11.8 and I download pytorch using this command: pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118
.
Sometimes it will run to the end successfully but sometimes it will stop and have the error shown below and sometimes it will have different error.
It seems related to dill and pickles, but I am not sure how to fix this. I have searched through the YOLOv8 discussion group and stack overflow, but I cannot find any potential solutions. What can I try next?
Below is the code:
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __name__ == '__main__':
model = YOLO('ultralytics/cfg/models/v8/yolov8n.yaml')
model.train(data='datasets2/data.yaml',
cache=True,
imgsz=640,
epochs=200,
batch=4,
close_mosaic=10,
workers=8,
device='0',
seed=0,
patience=200,
optimizer='SGD', # using SGD
# resume='', # last.pt path
# amp=False, # close amp
# fraction=0.2,
project='runs/train',
name='exp',
)
This is the error:
File "d:\chinhong\yolov8-20240314\ultralytics-main\train.py", line 52, in <module>
train()
File "d:\chinhong\yolov8-20240314\ultralytics-main\train.py", line 14, in train
model.train(data='datasets2/data.yaml',
File "d:\chinhong\yolov8-20240314\ultralytics-main\ultralytics\engine\model.py", line 602, in train
self.trainer.train()
File "d:\chinhong\yolov8-20240314\ultralytics-main\ultralytics\engine\trainer.py", line 209, in train
self._do_train(world_size)
File "d:\chinhong\yolov8-20240314\ultralytics-main\ultralytics\engine\trainer.py", line 437, in _do_train
self.save_model()
File "d:\chinhong\yolov8-20240314\ultralytics-main\ultralytics\engine\trainer.py", line 500, in save_model
torch.save(ckpt, self.best)
File "d:\chinhong\yolov8-20240314\ultralytics-main\ultralytics\utils\patches.py", line 82, in torch_save
return _torch_save(*args, **kwargs)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\torch\serialization.py", line 619, in save
_save(obj, opened_zipfile, pickle_module, pickle_protocol, _disable_byteorder_record)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\torch\serialization.py", line 831, in _save
pickler.dump(obj)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 394, in dump
StockPickler.dump(self, obj)
File "c:\pyver\py3.10.0\lib\pickle.py", line 487, in dump
self.save(obj)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 560, in save
f(self, obj) # Call unbound method with explicit self
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 1186, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "c:\pyver\py3.10.0\lib\pickle.py", line 972, in save_dict
self._batch_setitems(obj.items())
File "c:\pyver\py3.10.0\lib\pickle.py", line 998, in _batch_setitems
save(v)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 603, in save
self.save_reduce(obj=obj, *rv)
File "c:\pyver\py3.10.0\lib\pickle.py", line 717, in save_reduce
save(state)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 560, in save
f(self, obj) # Call unbound method with explicit self
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 1186, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "c:\pyver\py3.10.0\lib\pickle.py", line 972, in save_dict
self._batch_setitems(obj.items())
File "c:\pyver\py3.10.0\lib\pickle.py", line 998, in _batch_setitems
save(v)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 603, in save
self.save_reduce(obj=obj, *rv)
File "c:\pyver\py3.10.0\lib\pickle.py", line 713, in save_reduce
self._batch_setitems(dictitems)
File "c:\pyver\py3.10.0\lib\pickle.py", line 1003, in _batch_setitems
save(v)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 603, in save
self.save_reduce(obj=obj, *rv)
File "c:\pyver\py3.10.0\lib\pickle.py", line 717, in save_reduce
save(state)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 560, in save
f(self, obj) # Call unbound method with explicit self
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 1186, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "c:\pyver\py3.10.0\lib\pickle.py", line 972, in save_dict
self._batch_setitems(obj.items())
File "c:\pyver\py3.10.0\lib\pickle.py", line 998, in _batch_setitems
save(v)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 603, in save
self.save_reduce(obj=obj, *rv)
File "c:\pyver\py3.10.0\lib\pickle.py", line 713, in save_reduce
self._batch_setitems(dictitems)
File "c:\pyver\py3.10.0\lib\pickle.py", line 998, in _batch_setitems
save(v)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 603, in save
self.save_reduce(obj=obj, *rv)
File "c:\pyver\py3.10.0\lib\pickle.py", line 717, in save_reduce
save(state)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 560, in save
f(self, obj) # Call unbound method with explicit self
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 1186, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "c:\pyver\py3.10.0\lib\pickle.py", line 972, in save_dict
self._batch_setitems(obj.items())
File "c:\pyver\py3.10.0\lib\pickle.py", line 998, in _batch_setitems
save(v)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 603, in save
self.save_reduce(obj=obj, *rv)
File "c:\pyver\py3.10.0\lib\pickle.py", line 713, in save_reduce
self._batch_setitems(dictitems)
File "c:\pyver\py3.10.0\lib\pickle.py", line 998, in _batch_setitems
save(v)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 603, in save
self.save_reduce(obj=obj, *rv)
File "c:\pyver\py3.10.0\lib\pickle.py", line 717, in save_reduce
save(state)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 560, in save
f(self, obj) # Call unbound method with explicit self
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 1186, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "c:\pyver\py3.10.0\lib\pickle.py", line 972, in save_dict
self._batch_setitems(obj.items())
File "c:\pyver\py3.10.0\lib\pickle.py", line 998, in _batch_setitems
save(v)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 603, in save
self.save_reduce(obj=obj, *rv)
File "c:\pyver\py3.10.0\lib\pickle.py", line 713, in save_reduce
self._batch_setitems(dictitems)
File "c:\pyver\py3.10.0\lib\pickle.py", line 1003, in _batch_setitems
save(v)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 603, in save
self.save_reduce(obj=obj, *rv)
File "c:\pyver\py3.10.0\lib\pickle.py", line 717, in save_reduce
save(state)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 560, in save
f(self, obj) # Call unbound method with explicit self
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 1186, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "c:\pyver\py3.10.0\lib\pickle.py", line 972, in save_dict
self._batch_setitems(obj.items())
File "c:\pyver\py3.10.0\lib\pickle.py", line 998, in _batch_setitems
save(v)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 603, in save
self.save_reduce(obj=obj, *rv)
File "c:\pyver\py3.10.0\lib\pickle.py", line 713, in save_reduce
self._batch_setitems(dictitems)
File "c:\pyver\py3.10.0\lib\pickle.py", line 998, in _batch_setitems
save(v)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 603, in save
self.save_reduce(obj=obj, *rv)
File "c:\pyver\py3.10.0\lib\pickle.py", line 717, in save_reduce
save(state)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 560, in save
f(self, obj) # Call unbound method with explicit self
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 1186, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "c:\pyver\py3.10.0\lib\pickle.py", line 972, in save_dict
self._batch_setitems(obj.items())
File "c:\pyver\py3.10.0\lib\pickle.py", line 998, in _batch_setitems
save(v)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 603, in save
self.save_reduce(obj=obj, *rv)
File "c:\pyver\py3.10.0\lib\pickle.py", line 713, in save_reduce
self._batch_setitems(dictitems)
File "c:\pyver\py3.10.0\lib\pickle.py", line 998, in _batch_setitems
save(v)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 603, in save
self.save_reduce(obj=obj, *rv)
File "c:\pyver\py3.10.0\lib\pickle.py", line 717, in save_reduce
save(state)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 560, in save
f(self, obj) # Call unbound method with explicit self
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 1186, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "c:\pyver\py3.10.0\lib\pickle.py", line 972, in save_dict
self._batch_setitems(obj.items())
File "c:\pyver\py3.10.0\lib\pickle.py", line 998, in _batch_setitems
save(v)
File "D:\chinhong\yolov8-20240314\myenv\lib\site-packages\dill\_dill.py", line 388, in save
StockPickler.save(self, obj, save_persistent_id)
File "c:\pyver\py3.10.0\lib\pickle.py", line 603, in save
self.save_reduce(obj=obj, *rv)
File "c:\pyver\py3.10.0\lib\pickle.py", line 702, in save_reduce
self.memoize(obj)
File "c:\pyver\py3.10.0\lib\pickle.py", line 510, in memoize
self.write(self.put(idx))
File "c:\pyver\py3.10.0\lib\pickle.py", line 243, in write
return self.current_frame.write(data)
AttributeError: 'NoneType' object has no attribute 'write'
Upvotes: 0
Views: 116