1 В избранное 0 Ответвления 0

GITHUB-MIRROR/MooreThreads-torch_musa

 / Детали:

Ошибка при обучении YOLOv10 в Conv2d MUDNN: не удалось выполнить объединение в RunFusion

Предстоит сделать
Владелец
Создано  
08.02.2025

yoloV10 использует musify-text для замены CUDA на MUSA, а затем torch.musa на torch_musa. После этого при обучении AI возникает ошибка Conv2d MUDNN failed in: RunFusion.
2024-08-30 22-43-33 экранная снимок

RuntimeError:
Внутренний вызов:
Cell In[18], строка 6
[3] model = YOLOv10('./model/yolov10s.pt')
[5] # yolo detect train data=coco.yaml model=yolov10n/s/m/b/l/x.yaml epochs=500 batch=256 imgsz=640 device=0,1,2,3,4,5,6,7
----> [6] model.train(model='./ultralytics/cfg/models/v10/yolov10s_mk.yaml',
[7] data='./ultralytics/cfg/datasets/MK_persion.yaml',
[8] epochs=128, batch=32, imgsz=320,
[9] device='musa')

Файл /musaAI/yolov10/ultralytics/engine/model.py:657, в функции Model.train(self, trainer, **kwargs)
[654] pass
[656] self.trainer.hub_session = self.session # прикрепить опциональную сессию HUB
--> [657] self.trainer.train()
[658] # Обновление модели и конфигурации после обучения
[659] if RANK in (-1, 0):

Файл /musaAI/yolov10/ultralytics/engine/trainer.py:214, в функции BaseTrainer.train(self)
[211] ddp_cleanup(self, str(file))
[213] else:
--> [214] self._do_train(world_size)

Файл /musaAI/yolov10/ultralytics/engine/trainer.py:328, в функции BaseTrainer._do_train(self, world_size)
[326] if world_size > 1:
[327] self._setup_ddp(world_size)
--> [328] self._setup_train(world_size)

Файл /musaAI/yolov10/ultralytics/engine/trainer.py:272, в функции BaseTrainer._setup_train(self, world_size)
[270] if self.amp and RANK in (-1, 0): # Single-GPU и DDP
[271] callbacks_backup = callbacks.default_callbacks.copy() # резервная копия callbacks для проверки amp()
--> [272] self.amp = torch.tensor(check_amp(self.model), device=self.device)
[273] callbacks.default_callbacks = callbacks_backup # восстановление callbacks
[274] if RANK > -1 and world_size > 1: # DDP

Файл /musaAI/yolov10/ultralytics/utils/checks.py:654, в функции check_amp(model)
[651] try:
[652] from ultralytics import YOLO
--> [654] assert amp_allclose(YOLO("yolov8n.pt"), im)
[655] LOGGER.info(f"{prefix}checks passed ✅")
[656] except ConnectionError:

Файл /musaAI/yolov10/ultralytics/utils/checks.py:643, в функции check_amp..amp_allclose(m, im)
[641] a = m(im, device=device, verbose=False)[0].boxes.data # FP32 inference
[642] with torch_musa.amp.autocast(True):
--> [643] b = m(im, device=device, verbose=False)[0].boxes.data # AMP inference
[644] del m
[645] return a.shape == b.shape and torch.allclose(a, b.float(), atol=0.5)

Файл /musaAI/yolov10/ultralytics/engine/model.py:166, в функции Model.call(self, source, stream, **kwargs)
[143] def call(
[144] self,
[145] source: Union[str, Path, int, list, tuple, np.ndarray, torch.Tensor] = None,
[146] stream: bool = False,
[147] **kwargs,
[148] ) -> list:
[149] """
[150] Альтернатива методу predict, позволяющая модели быть вызываемой.
(...)

Файл /musaAI/yolov10/ultralytics/engine/model.py:441, в функции Model.predict(self, source, stream, predictor, **kwargs)
[439] if prompts and hasattr(self.predictor, "set_prompts"): # для моделей типа SAM
[440] self.predictor.set_prompts(prompts)
--> [441] return self.predictor.predict_cli(source=source) if is_cli else self.predictor(source=source, stream=stream)

Файл /musaAI/yolov10/ultralytics/engine/predictor.py:168, в функции BasePredictor.call(self, source, model, stream, *args, **kwargs)
[166] return self.stream_inference(source, model, *args, **kwargs) if is_cli else list(self.stream_inference(source, model, *args, **kwargs))
--> [168] return list(self.stream_inference(source, model, *args, **kwargs))

Файл /opt/conda/envs/py39/lib/python3.9/site-packages/torch/utils/_contextlib.py:35, в функции _wrap_generator..generator_context(*args, **kwargs)
[32] try:
[33] # Вызов None для генератора запускает его
[34] with ctx_factory():
---> [35] response = gen.send(None)
[37] while True:
[38] try:
[39] # Передача ответа нашему вызывающему и получение следующего запроса

Файл /musaAI/yolov10/ultralytics/engine/predictor.py:248, в функции BasePredictor.stream_inference(self, source, model, *args, **kwargs)
[246] # Исполнение
[247] with profilers[1]:
--> [248] preds = self.inference(im, *args, **kwargs)
[249] if self.args.embed:
250 yield from [preds] if isinstance(preds, torch.Tensor) else preds # yield embedding tensors

Файл /musaAI/yolov10/ultralytics/engine/predictor.py:142, в функции BasePredictor.inference(self, im, *args, **kwargs)
136 """Выполняет инференс на заданном изображении с использованием указанной модели и аргументов."""
137 visualize = (
138 increment_path(self.save_dir / Path(self.batch[0][0]).stem, mkdir=True)
139 if self.args.visualize and (not self.source_type.tensor)
140 else False
141 )
--> 142 return self.model(im, augment=self.args.augment, visualize=visualize, embed=self.args.embed, *args, **kwargs)

Файл /opt/conda/envs/py39/lib/python3.9/site-packages/torch/nn/modules/module.py:1501, в функции Module._call_impl(self, *args, **kwargs)
1496 # Если у нас нет хуков, мы хотим пропустить остальную логику в этой функции и просто вызвать forward.
1497 # этой функции, и просто вызвать forward.
1498 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
1499 or _global_backward_pre_hooks or _global_backward_hooks
1500 or _global_forward_hooks or _global_forward_pre_hooks):
-> 1501 return forward_call(*args, **kwargs)
1502 # Не вызывать функции, когда используется jit
1503 full_backward_hooks, non_full_backward_hooks = [], []

Файл /musaAI/yolov10/ultralytics/nn/autobackend.py:423, в функции AutoBackend.forward(self, im, augment, visualize, embed)
421 # PyTorch
422 if self.pt or self.nn_module:
--> 423 y = self.model(im, augment=augment, visualize=visualize, embed=embed)
425 # TorchScript
426 elif self.jit:

Файл /opt/conda/envs/py39/lib/python3.9/site-packages/torch/nn/modules/module.py:1501, в функции Module._call_impl(self, *args, **kwargs)
1496 # Если у нас нет хуков, мы хотим пропустить остальную логику в этой функции и просто вызвать forward.
1497 # этой функции, и просто вызвать forward.
1498 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
1499 or _global_backward_pre_hooks or _global_backward_hooks
1500 or _global_forward_hooks or _global_forward_pre_hooks):
-> 1501 return forward_call(*args, **kwargs)
1502 # Не вызывать функции, когда используется jit
1503 full_backward_hooks, non_full_backward_hooks = [], []

Файл /musaAI/yolov10/ultralytics/nn/tasks.py:94, в функции BaseModel.forward(self, x, *args, **kwargs)
92 if isinstance(x, dict): # для случаев обучения и валидации во время обучения.
93 return self.loss(x, *args, **kwargs)
---> 94 return self.predict(x, *args, **kwargs)

Файл /musaAI/yolov10/ultralytics/nn/tasks.py:112, в функции BaseModel.predict(self, x, profile, visualize, augment, embed)
110 if augment:
111 return self._predict_augment(x)
--> 112 return self._predict_once(x, profile, visualize, embed)

Файл /musaAI/yolov10/ultralytics/nn/tasks.py:133, в функции BaseModel._predict_once(self, x, profile, visualize, embed)
131 if profile:
132 self._profile_one_layer(m, x, dt)
--> 133 x = m(x) # run
134 y.append(x if m.i in self.save else None) # save output
135 if visualize:

Файл /opt/conda/envs/py39/lib/python3.9/site-packages/torch/nn/modules/module.py:1501, в функции Module._call_impl(self, *args, **kwargs)
1496 # Если у нас нет хуков, мы хотим пропустить остальную логику в этой функции и просто вызвать forward.
1497 # этой функции, и просто вызвать forward.
1498 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
1499 or _global_backward_pre_hooks or _global_backward_hooks
1500 or _global_forward_hooks or _global_forward_pre_hooks):
-> 1501 return forward_call(*args, **kwargs)
1502 # Не вызывать функции, когда используется jit
1503 full_backward_hooks, non_full_backward_hooks = [], []

Файл /musaAI/yolov10/ultralytics/nn/modules/conv.py:54, в функции Conv.forward_fuse(self, x)
52 def forward_fuse(self, x):
53 """Выполняет транспонированное свертку 2D данных."""
---> 54 return self.act(self.conv(x))

Файл /opt/conda/envs/py39/lib/python3.9/site-packages/torch/nn/modules/module.py:1501, в функции Module._call_impl(self, *args, **kwargs)
1496 # Если у нас нет хуков, мы хотим пропустить остальную логику в этой функции и просто вызвать forward.
1497 # этой функции, и просто вызвать forward.
1498 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
1499 or _global_backward_pre_hooks or _global_backward_hooks
1500 or _global_forward_hooks or _global_forward_pre_hooks):
-> 1501 return forward_call(*args, **kwargs)
1502 # Не вызывайте функции при использовании jit
1503 full_backward_hooks, non_full_backward_hooks = [], []

Файл /opt/conda/envs/py39/lib/python3.9/site-packages/torch/nn/modules/conv.py:463, в функции Conv2d.forward(self, input)
462 def forward(self, input: Tensor) -> Tensor:
--> 463 return self._conv_forward(input, self.weight, self.bias)

Файл /opt/conda/envs/py39/lib/python3.9/site-packages/torch/nn/modules/conv.py:459, в функции Conv2d._conv_forward(self, input, weight, bias)
455 if self.padding_mode != 'zeros':
456 return F.conv2d(F.pad(input, self._reversed_padding_repeated_twice, mode=self.padding_mode),
457 weight, bias, self.stride,
458 _pair(0), self.dilation, self.groups)
--> 459 return F.conv2d(input, weight, bias, self.stride,
460 self.padding, self.dilation, self.groups)

RuntimeError: Conv2d MUDNN failed in: RunFusion
2024-08-30 22-43-33屏幕截图

Комментарий (0)

GitLife Service Account Задача создана

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/github-mirror/MooreThreads-torch_musa.git
git@api.gitlife.ru:github-mirror/MooreThreads-torch_musa.git
github-mirror
MooreThreads-torch_musa
MooreThreads-torch_musa