Getting "torch,amp has no attribute GradScaler" error, when trying to train YOLO models (yolov10, v9) on kaggle

Code:
!pip install ultralytics from ultralytics import YOLO model = YOLO('yolov10x.yaml') results = model.train(data='config.yaml', epochs=400, patience=40, device=[0, 1])
Error:

AttributeError Traceback (most recent call last)
Cell In[23], line 2
1 MODEL = YOLO(“yolov10x.yaml”)
----> 2 results = MODEL.train(data=“/kaggle/input/configuration/config.yaml”, epochs=400, patience=35, device=0, cache=True)

File /opt/conda/lib/python3.10/site-packages/ultralytics/engine/model.py:810, in Model.train(self, trainer, **kwargs)
807 self.model = self.trainer.model
809 self.trainer.hub_session = self.session # attach optional HUB session
→ 810 self.trainer.train()
811 # Update model and cfg after training
812 if RANK in {-1, 0}:

File /opt/conda/lib/python3.10/site-packages/ultralytics/engine/trainer.py:206, in BaseTrainer.train(self)
203 ddp_cleanup(self, str(file))
205 else:
→ 206 self._do_train(world_size)

File /opt/conda/lib/python3.10/site-packages/ultralytics/engine/trainer.py:329, in BaseTrainer._do_train(self, world_size)
327 if world_size > 1:
328 self._setup_ddp(world_size)
→ 329 self._setup_train(world_size)
331 nb = len(self.train_loader) # number of batches
332 nw = max(round(self.args.warmup_epochs * nb), 100) if self.args.warmup_epochs > 0 else -1 # warmup iterations

File /opt/conda/lib/python3.10/site-packages/ultralytics/engine/trainer.py:270, in BaseTrainer._setup_train(self, world_size)
267 dist.broadcast(self.amp, src=0) # broadcast the tensor from rank 0 to all other ranks (returns None)
268 self.amp = bool(self.amp) # as boolean
269 self.scaler = (
→ 270 torch.amp.GradScaler(“cuda”, enabled=self.amp)
271 if TORCH_1_13
272 else torch.cuda.amp.GradScaler(enabled=self.amp)
273 )
274 if world_size > 1:
275 self.model = nn.parallel.DistributedDataParallel(self.model, device_ids=[RANK], find_unused_parameters=True)

AttributeError: module ‘torch.amp’ has no attribute ‘GradScaler’

Attem

pts:
Tried updating torch, torchvision. Even when I try to import torch.amp.GradScaler, still I get the Attribute error.
Also I had to mention, this wasn’t happening before, I trained a yolov10 model a few days ago. I also verified on my local linux machine, it also gives the same attribute error when trying to import torch.amp.GradScaler

1 Like

I had a simliar error. What fixed it for me was upgrading torch. I see you already tried it but maybe try it again or make sure you really have the latest version

1 Like

The latest stable release and nightly binaries work for me:

python -c "import torch; print(torch.__version__); print(torch.amp.GradScaler)"
2.3.1+cu121
<class 'torch.amp.grad_scaler.GradScaler'>

EDIT: 2.4.0 was just released, so 2.3.1 is not the “latest” stable anymore

1 Like

Thank you all for your response. I upgraded torch, torchvision, and ultralytics to the latest version, and my code is running fine now.