Код
#новости

Вышел PyTorch 1.11 — обновленный фреймворк машинного обучения для Python

Разработчики убрали лишние методы, добавили функции для работы с Python API, CUDA, Autograd и выпустили бета-версии двух библиотек.

Команда PyTorch выкатила новую версию своего ML-фреймворка, которая включает более 3400 свежих коммитов от 434 контрибуторов. Также разработчики представили бета-версии двух библиотек — это TorchData, предназначенная для создания производительных конвейеров данных, и functorch, добавляющая составные преобразования в PyTorch.

В Pytorch 1.11 пофиксили некоторые баги, «задепрекейтили» устаревшие методы, а некоторые и вовсе удалили. Например, отключили torch.hub.import_module, который когда-то по ошибке стал общедоступным.

Теперь в Python API можно копировать все атрибуты объектов Tensor, а не только простые свойства:

a = torch.rand(2)
a.foo = 3
torch.save(a, "bar")
b = torch.load("bar")
print(b.foo)

# В предыдущих версиях вызовет AttributeError: "Tensor" object has no attribute "foo"

# В версии 1.11 даст результат: 3

Аргумент Steps в torch.linspace и torch.logspace стал обязательным:

#Теперь нужно писать так:
a = torch.linspace(1, 10, steps=100)

# Старый способ тоже сработает, но вызовет deprecation warning
a = torch.linspace(1, 10)
# UserWarning: Not providing a value for linspace's steps is deprecated
# в последующих релизах вызовет runtime error:
# (Triggered internally at  ../aten/src/ATen/native/RangeFactories.cpp:19

Разработчики расширили возможности по работе с Python API, CUDA и инструментами линейной алгебры.

Python API. Добавили set_deterministic_debug_mode и get_deterministic_debug_mode, n-мерный эрмитов БПФ, распределения Уишарта. Теперь модули torch и torch.linalg поддерживают более 90% операторов Python Array API, включая torch.from_dlpack для поддержки стандарта DLPACK.

CUDA. Появился Jiterator, который позволяет компилировать редко используемые ядра CUDA в рантайме. Добавили дескриптор cuSPARSE и обновили CSR addmm, addmv_out и nvidia-smi.

Autograd. В PyTorch 1.11 появилась реализация torch.utils.checkpoint, которая не использует повторно используемый autograd. Прямой режим AD (дифференциации алгоритмов) теперь поддерживает большинство операций и включает функцию ctx.save_for_forward, а метод autograd.forward_ad.unpack_dual теперь возвращает именованный кортеж вместо обычного кортежа.

Линейная алгебра. Добавили поддержку прямой дифференциации алгоритмов в torch.linalg.{eig, inverse, householder_product, qr} и torch.*_solve, поддержку прямой и обратной AD в torch.linalg.lstsq, а также расширили диапазон входных данных для linalg.pinv.

Узнать больше о PyTorch 1.11 и новых библиотеках можно в репозитории PyTorch на GitHub.


Проверьте свой английский. Бесплатно ➞
Нескучные задания: small talk, поиск выдуманных слов — и не только. Подробный фидбэк от преподавателя + персональный план по повышению уровня.
Пройти тест
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована