Pytorch 1.0 имеет функцию для преобразования модели в программу сценария факела (сериализованную каким-либо образом) для обеспечения возможности ее выполнения в C ++ без зависимостей Python.
Подробности в этом уроке.https://pytorch.org/tutorials/advanced/cpp_export.html
Вот как это делается:
import torch
import torchvision
# An instance of your model.
model = A UNET MODEL FROM FASTAI which has hooks as required by UNET
# An example input you would normally provide to your model's forward() method.
example = torch.rand(1, 3, 224, 224)
# Use torch.jit.trace to generate a torch.jit.ScriptModule via tracing.
traced_script_module = torch.jit.trace(model, example)
В моем случае я использую модель UNET для семантической сегментации.Однако, отслеживая модель с помощью этого метода, я получаю следующую ошибку:
Forward or backward hooks can't be compiled
Модель UNET использует ловушки для сохранения промежуточных объектов, которые используются на более поздних уровнях в сети.Есть ли способ обойти это?или Это все еще ограничение этого нового метода, что он не может работать с моделями, использующими такие ловушки