Я столкнулся со следующей ошибкой при использовании обученной моделиPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Я столкнулся со следующей ошибкой при использовании обученной модели

Сообщение Гость »


# библиотеки импорта импортный фонарь импортировать cv2 импортировать numpy как np # загружаем обученную модель ResNet из torch.autograd Импортная переменная модель = torch.load("model.pth") модель.eval() # загружаем изображение стальной трубы изображение = cv2.imread("img/75.jpg") УСТРОЙСТВО = torch.device("cuda:0" если torch.cuda.is_available() иначе "процессор") # предварительная обработка изображения image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # конвертируем в RGB image_resized = cv2.resize(image_rgb, (224, 224)) # изменение размера до 224x224 image_normalized = image_resized / 255.0 # нормализовать до [0, 1] image_tensor = torch.from_numpy(image_normalized) # конвертируем в тензор image_tensor = image_tensor.permute(2, 0, 1) # меняем порядок каналов image_tensor = image_tensor.unsqueeze(0) # добавляем размер пакета данные = Переменная(image_tensor).to(УСТРОЙСТВО) # передаем тензор изображения в модель и получаем результат распечатать (изображение) вывод = модель([image_tensor]) # получить предсказанные ограничивающие рамки, метки, оценки и маски коробки = вывод["коробки"].detach().numpy() метки = вывод["метки"].detach().numpy() баллы = вывод["баллы"].detach().numpy() маски = вывод["маски"].detach().numpy() # отфильтровать объекты, не являющиеся стальными трубами порог = 0,5 # вы можете настроить это значение index = np.where((labels == 1) & (баллы >= порог))[0] # при условии, что метка 1 предназначена для стальной трубы коробки = коробки[индексы] маски = маски[индексы] # рисуем ограничивающие рамки и маски на исходном изображении для коробки, маски в зип(коробочки, маски): # получаем координаты ящика x1, y1, x2, y2 = box.astype(int) # получаем маску объекта маска = маска.сжать() # изменяем размер маски в соответствии с исходным размером изображения маска = cv2.resize(маска, (image.shape[1], image.shape[0])) # применяем порог для бинаризации маски маска = (маска > 0,5).astype(np.uint8) # создаём цвет для маски цвет = np.random.randint(0, 256, размер = 3) цвет = [int(c) для c в цвете] # рисуем ограничивающую рамку на изображении cv2.rectangle(изображение, (x1, y1), (x2, y2), цвет, 2) # рисуем маску на изображении изображение[маска == 1] = cv2.addWeighted(изображение[маска == 1], 0,5, np.array(цвет), 0,5, 0) # сохраняем или отображаем полученное изображение cv2.imwrite("result.jpg", изображение) cv2.imshow("Результат", изображение) cv2.waitKey(0) cv2.destroyAllWindows() ошибка: Traceback (последний вызов последний): Файл «D:\MASTER_Project\testModel.py», строка 27, в вывод = модель([image_tensor]) Файл «D:\MASTER_Project\venv\lib\site-packages\torch\nn\modules\module.py», строка 1501, в _call_impl return front_call(*args, **kwargs) Файл "D:\MASTER_Project\venv\lib\site-packages\torchvision\models\resnet.py", строка 285, вперед вернуть self._forward_impl(x) Файл «D:\MASTER_Project\venv\lib\site-packages\torchvision\models\resnet.py», строка 268, в _forward_impl х = self.conv1(x) Файл «D:\MASTER_Project\venv\lib\site-packages\torch\nn\modules\module.py», строка 1501, в _call_impl return front_call(*args, **kwargs) Файл "D:\MASTER_Project\venv\lib\site-packages\torch\nn\modules\conv.py", строка 463, вперед return self._conv_forward(input, self.weight, self.bias) Файл «D:\MASTER_Project\venv\lib\site-packages\torch\nn\modules\conv.py», строка 459, в _conv_forward return F.conv2d(входные данные, вес, смещение, самостоятельный шаг, TypeError: conv2d() получил недопустимую комбинацию аргументов — получил (список, параметр, NoneType, кортеж, кортеж, кортеж, int), но ожидал один из:
[*](Входные данные тензора, вес тензора, смещение тензора, кортеж шагов целых чисел, кортеж заполнения целых чисел, кортеж расширения целых чисел, группы целых чисел) не совпало, поскольку некоторые аргументы имеют недопустимые типы: (!list of [Tensor]!, !Parameter!, !NoneType!, !tuple of (int, int)!, !tuple of (int, int)!, !кортеж из (int, int)!, int) [*](Ввод тензора, вес тензора, смещение тензора, кортеж целых шагов, заполнение строк, кортеж расширения целых чисел, группы целых чисел) не совпало, поскольку некоторые аргументы имеют недопустимые типы: (!list of [Tensor]!, !Parameter!, !NoneType!, !tuple of (int, int)!, !tuple of (int, int)!, !кортеж из (int, int)!, int)
Как исправить код?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»