PyTorch 1.2 был выпущен с новым TorchScript API, предлагающим более полный охват Python. В новом выпуске также расширена поддержка экспорта ONNX и стандартный модуль nn.Transformer.
PyTorch — это оптимизированная тензорная библиотека для глубокого обучения с использованием графических процессоров и процессоров. Он нацелен на то, чтобы предложить замену NumPy, использующую мощь графических процессоров, и в то же время предоставить исследовательскую платформу для глубокого обучения, которая обеспечивает максимальную гибкость и скорость.
Разработчики заявляют, что в этом выпуске фреймворк машинного обучения с открытым исходным кодом делает важный шаг вперед для производственного использования с добавлением улучшенной среды TorchScript. Компилятор TorchScript преобразует модели PyTorch в статически типизированное графическое представление, обеспечивая способ оптимизации и выполнения моделей в ограниченных средах, где Python недоступен. Вы можете постепенно преобразовывать свою модель в TorchScript, легко смешивая скомпилированный код с Python. Программы TorchScript могут быть сохранены из процесса Python и загружены в процесс, не зависящий от Python.
В этом выпуске TorchScript значительно расширил поддержку подмножества Python, используемого в моделях PyTorch, и предоставляет новый, более простой в использовании API для компиляции ваших моделей в TorchScript.
Также была расширена поддержка экспорта ONNX. ONNX — это формат обмена открытой нейронной сетью, открытый формат для представления моделей глубокого обучения, призванный упростить разработчикам ИИ перемещение моделей между инструментами. В этом выпуске PyTorch добавлена полная поддержка экспорта ONNX Opset версий с 7 по 10, а также усовершенствован проход сворачивания констант для поддержки Opset 10, последней доступной версии ONNX. ScriptModule также был улучшен, включая поддержку нескольких выходов, тензорных фабрик и кортежей в качестве входов и выходов.
В этот выпуск включен стандартный модуль nn.Transformer. Это предназначено для использования с нейронными сетями, которые преобразуют последовательность элементов (возможно, слова в предложении) в другую последовательность. Такие сети часто используются для переводов и обычно используют кодировщик и декодер, а также механизм внимания, который смотрит на входную последовательность и решает, какие части являются наиболее важными. Модуль nn.transformer полностью полагается на механизм внимания для определения глобальных зависимостей между вводом и выводом. Он основан на идеях, выдвинутых в документе, озаглавленном «Все, что вам нужно».
Последнее главное улучшение этого выпуска — обновленный набор библиотек API домена. Они обеспечивают доступ к общим наборам данных, моделям и преобразованиям, которые можно использовать для быстрого создания базовых показателей, и в этом выпуске представлены три обновленные библиотеки DAPI для текста, звука и изображения.
Новая версия доступна на GitHub.