使用服务器训练yolov8模型时,无卡模式开机运行代码没有报错,开机后运行报错
Traceback (most recent call last):
File "train_3.py", line 14, in <module>
model.train(data='data.yaml', epochs=500, imgsz=640,hsv_h=0,hsv_s=0,hsv_v=0)
File "/root/ultralytics/ultralytics/engine/model.py", line 389, in train
self.trainer.train()
File "/root/ultralytics/ultralytics/engine/trainer.py", line 208, in train
self._do_train(world_size)
File "/root/ultralytics/ultralytics/engine/trainer.py", line 322, in _do_train
self._setup_train(world_size)
File "/root/ultralytics/ultralytics/engine/trainer.py", line 266, in _setup_train
self.amp = torch.tensor(check_amp(self.model), device=self.device)
File "/root/ultralytics/ultralytics/utils/checks.py", line 650, in check_amp
assert amp_allclose(YOLO("yolov8n.pt"), im)
File "/root/ultralytics/ultralytics/utils/checks.py", line 637, in amp_allclose
a = m(im, device=device, verbose=False)[0].boxes.data # FP32 inference
File "/root/ultralytics/ultralytics/engine/model.py", line 100, in __call__
return self.predict(source, stream, **kwargs)
File "/root/ultralytics/ultralytics/engine/model.py", line 273, in predict
return self.predictor.predict_cli(source=source) if is_cli else self.predictor(source=source, stream=stream)
File "/root/ultralytics/ultralytics/engine/predictor.py", line 204, in __call__
return list(self.stream_inference(source, model, *args, **kwargs)) # merge list of Result into one
File "/root/miniconda3/lib/python3.8/site-packages/torch/utils/_contextlib.py", line 35, in generator_context
response = gen.send(None)
File "/root/ultralytics/ultralytics/engine/predictor.py", line 283, in stream_inference
preds = self.inference(im, *args, **kwargs)
File "/root/ultralytics/ultralytics/engine/predictor.py", line 140, in inference
return self.model(im, augment=self.args.augment, visualize=visualize, embed=self.args.embed, *args, **kwargs)
File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
return forward_call(*args, **kwargs)
TypeError: forward() got an unexpected keyword argument 'embed'
最关键的是最下面
File "/root/ultralytics/ultralytics/engine/predictor.py", line 140, in inference
return self.model(im, augment=self.args.augment, visualize=visualize, embed=self.args.embed, *args, **kwargs)
在jupyter lab找到上述路径所指文件predictor.py,对应140行,删除=visualize后面的代码,改为如下格式
return self.model(im, augment=self.args.augment, visualize=visualize)
再次开机运行后没有报错,可以尝试
Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size
1/500 3.86G 3.867 5.608 3.876 4 640: 100%|████
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 8/8 [00:00<00:00, 9.28it/s]
all 243 163 0 0 0 0
Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size
2/500 3.85G 3.392 4.313 3.393 4 640: 100%|██████████| 74/74 [00:06<00:00, 11.73it/s]
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 8/8 [00:01<00:00, 6.33it/s]
all 243 163 0.00487 0.16 0.0118 0.00169
Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size
3/500 3.85G 3.226 4.288 3.217 2 640: 100%|██████████| 74/74 [00:06<00:00, 12.04it/s]
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 8/8 [00:00<00:00, 12.34it/s]
all 243 163 0.0537 0.0429 0.00546 0.00121
Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size
4/500 3.85G 3.107 4.258 3.052 3 640: 100%|██████████| 74/74 [00:06<00:00, 12.04it/s]