Функция экспорта из Pytorch в ONNX не работает и вызывает ошибку устаревшей функции - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь преобразовать модель pytorch в эту ссылку на модель onnx, используя следующий код:

device=t.device('cuda:0' if t.cuda.is_available() else 'cpu')
print(device)

faster_rcnn = FasterRCNNVGG16()
trainer = FasterRCNNTrainer(faster_rcnn).cuda()
#trainer = FasterRCNNTrainer(faster_rcnn).to(device)
trainer.load('./checkpoints/model.pth')

dummy_input = t.randn(1, 3, 300, 300, device = 'cuda')
#dummy_input = dummy_input.to(device)
t.onnx.export(faster_rcnn, dummy_input, "model.onnx", verbose = True)

Но я получаю следующую ошибку (извините за приведенную ниже цитату блокаstackoverflow не позволил бы всей трассировке быть в формате кода и не позволил бы опубликовать вопрос иначе):

  Traceback (most recent call last):
     small_object_detection_master_samirsen\onnxtest.py", line 44, in <module>
       t.onnx.export(faster_rcnn, dummy_input, "fasterrcnn_10120119_06025842847785781.onnx", verbose = True)
     File "C:\Users\HP\AppData\Local\Programs\Python\Python36\lib\site-packages\torch\onnx\__init__.py",

строка 132, в файле экспорта strip_doc_string, dynamic_axes) Файл "C: \Users \ HP \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ torch \ onnx \ utils.py ", строка 64, в экспорте example_outputs = example_outputs, strip_doc_string = strip_doc_string, dynamic_axes = dynamic_axes) Файл" C:\ Users \ HP \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ torch \ onnx \ utils.py ", строка 329, в _export_retain_param_name, do_constant_folding) Файл" C: \ Users \ HP \ AppData \ "Local \ Programs \ Python \ Python36 \ lib \ site-packages \ torch \ onnx \ utils.py ", строка 213, в графе _model_to_graph, torch_out = _trace_and_get_graph_from_model (модель, аргументы, обучение) Файл" C: \ Users \ HP \ AppData "\ Local \ Programs \ Python \Python36 \ lib \ site-packages \ torch \ onnx \ utils.py ", строка 171, в трассировке _trace_and_get_graph_from_model, torch_out = torch.jit.get_trace_graph (модель, аргументы, _force_outplace = True) Файл" C: \ Users \ HP \ AppData "\ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ torch \ jit__init __. Py ", строка 256, в get_trace_graph возвращает LegacyTracedModule (f, _force_outplace, return_inputs) (* args, ** kwargs) Файл" C: \ Users "\ HP \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ torch \ nn \ modules \ module.py ", строка 547, в вызов result = self.forward (* input,** kwargs) Файл "C: \ Users \ HP \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ torch \ jit__init __. py", строка 323, в forward out = self.inner (* trace_inputs)Файл "C: \ Users \ HP \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ torch \ nn \ modules \ module.py", строка 545, в вызов , результат = self._slow_forward (* input, ** kwargs) Файл "C: \ Users \ HP \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ torch \ nn \ modules \ module.py", строка 531, в_slow_forward Файл "C: \ Users \ HP \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ torch \ nn \ modules \ module.py", строка 531, в _slow_forward result = self.forward (* input, ** kwargs) Файл "D: \ smalllobject2 \ export test s \ small_object_detection_master_samirsen \ model \ rapid_rcnn.py", строка 133, вперед h, rois, roi_indices) Файл "C: \ Users \ HP \ AppData \ Local \ Programs\ Python \ Python36 \ lib \ site-packages \ torch \ nn \ modules \ module.py ", строка 545, в вызов result = self._slow_forward (* input, ** kwargs) Файл" C:\ Users \ HP \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ torch \ nn \ modules \ module.py ", строка 531, в _slow_forward result = self.forward (* input, ** kwargs)Файл "D: \ smalllobject2 \ export test s \ small_object_detection_master_samirsen \ model \ rapid_rcnn_vgg16.py", строка 142, в пуле вперед = self.roi (x, indices_and_rois) Файл "C: \ Users \ HP \ AppData \ Local \ Programs \Python \ Python36 \ lib \ site-packages \ torch \ nn \ modules \ module.py ", строка 545, в вызов result = self._slow_forward (* input, ** kwargs) Файл "C: \ Users \ HP \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ torch \ nn \ modules \ module.py", строка 531, в _slow_forwardresult = self.forward (* input, ** kwargs) Файл "D: \ smalllobject2 \ export test s \ small_object_detection_master_samirsen \ model \ roi_module.py", строка 85, в прямом направлении возврата self.RoI (x, rois) RuntimeError: Попыткаотслеживать RoI, но отслеживание устаревших функций не поддерживается

...