Могу ли я использовать модель «torch.hub.load» для загрузки 2?

Я работаю над обнаружением оружия и хочу использовать обнаружение объектов и оценку позы для столкновения, но я не могу загрузить обе модели одновременно

      

WeaponDetectionModel = torch.hub.load('ultralytics/yolov5', 'custom', path='Model_WeaponDetection//YoloV5Weapon.pt')

HumanPose = torch.hub.load('TexasInstruments/edgeai-yolov5', 'custom', path='Model_HumanPose//YoloV5Human.pt')

Как я могу использовать оба как один и тот же процесс?

1 ответ

PyTorch Hub имеет ограничение на загрузку более одной модели из разных репозиториев. Я предполагаю, что вы получаете ошибки при загрузке второй модели.

Это связано с тем, что при загрузке первой модели модули импортируются в файлhubconf, а при попытке загрузки второй модели некоторые модули все еще доступны в кеше модулей.

Итак, грязный обходной путь — просто очистить импортированные модули:

      import torch
import sys

WeaponDetectionModel = torch.hub.load('ultralytics/yolov5', 'custom', path='Model_WeaponDetection//YoloV5Weapon.pt')

sys.modules.pop('models')  # pop any other possibly cached models 

HumanPose = torch.hub.load('TexasInstruments/edgeai-yolov5', 'custom', path='Model_HumanPose//YoloV5Human.pt')

Независимо от того, что это за две модели, модуль «модели» всегда кэшируется. В зависимости от того, насколько похожи зависимости ваших моделей, вам может понадобиться больше модулей, чтобы это работало. например, вам также может потребоваться загрузить модуль «utils».

Другие вопросы по тегам