В чем разница между torch.jit.trace и torch.jit.script в torchscript?

Torchscript предоставляет torch.jit.trace и torch.jit.script для преобразования кода pytorch из режима ожидания в модель сценария. Из документации я могу понять, что torch.jit.trace не может обрабатывать потоки управления и другие структуры данных, присутствующие в Python. Следовательно, torch.jit.script был разработан для решения проблем в torch.jit.trace.

Но похоже, что torch.jit.script работает во всех случаях, тогда зачем нам torch.jit.trace?

Пожалуйста, помогите мне понять разницу между этими двумя методами

2 ответа

Если torch.jit.scriptработает для вашего кода, тогда это все, что вам нужно. Код, использующий динамическое поведение, например полиморфизм, не поддерживается компилятором.torch.jit.script использует, поэтому для таких случаев вам нужно будет использовать torch.jit.trace.

Это глубокое погружение в различия между ними, в котором показано, когда «рекомендуется по умолчанию».jit.scriptхуже, чемjit.trace https://ppwwyyxx.com/blog/2022/TorchScript-Tracing-vs-Scripting/

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