yolov8训练时报错ValueError: I/O operation on closed file.
Traceback (most recent call last):
File “C:\Users\bx\AppData\Local\anaconda3\envs\mw\lib\site-packages\torch\serialization.py”, line 628, in save
_save(obj, opened_zipfile, pickle_module, pickle_protocol, _disable_byteorder_record)
File “C:\Users\bx\AppData\Local\anaconda3\envs\mw\lib\site-packages\torch\serialization.py”, line 842, in _save
zip_file.write_record(‘data.pkl’, data_value, len(data_value))
ValueError: I/O operation on closed file.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “C:\Users\bx\Desktop\code\v8detect_1023\v8detect_1023\ultralytics\111_v8_train_detect_new_403404406.py”, line 20, in
model.train(data=r’C:\Users\bx\Desktop\code\v8detect_1023\v8detect_1023\ultralytics\yaml\new_403404406_cang.yaml’,
File “C:\Users\bx\AppData\Local\anaconda3\envs\mw\lib\site-packages\ultralytics\engine\model.py”, line 805, in train
self.trainer.train()
File “C:\Users\bx\AppData\Local\anaconda3\envs\mw\lib\site-packages\ultralytics\engine\trainer.py”, line 207, in train
self._do_train(world_size)
File “C:\Users\bx\AppData\Local\anaconda3\envs\mw\lib\site-packages\ultralytics\engine\trainer.py”, line 440, in _do_train
self.save_model()
File “C:\Users\bx\AppData\Local\anaconda3\envs\mw\lib\site-packages\ultralytics\engine\trainer.py”, line 518, in save_model
torch.save(
File “C:\Users\bx\AppData\Local\anaconda3\envs\mw\lib\site-packages\ultralytics\utils\patches.py”, line 100, in torch_save
return _torch_save(*args, **kwargs)
File “C:\Users\bx\AppData\Local\anaconda3\envs\mw\lib\site-packages\torch\serialization.py”, line 629, in save
return
File “C:\Users\bx\AppData\Local\anaconda3\envs\mw\lib\site-packages\torch\serialization.py”, line 491, in exit
self.file_like.write_end_of_file()
ValueError: I/O operation on closed file.
问题出现在训练时,训练集只有60张图片,batch设置12,报错,有时候30epoch报错,有时候20epoch报错。
问题随机出现,原因未知
解决:把batch改成8,workers改成8,也就是减小batch