Spec-Zone.ru › PyTorch 2.14

torch.func

Создано: 11 июн. 2025 | Последнее обновление: 11 июн. 2025

torch.func, ранее известный как «functorch», — это похожие на JAX компонуемые преобразования функций для PyTorch.

Примечание

В настоящее время эта библиотека находится в стадии бета-тестирования. Это означает, что функции в целом работают (если в документации не указано иное), а мы (команда PyTorch) стремимся развивать эту библиотеку. Однако API могут изменяться с учётом отзывов пользователей, и мы не обеспечиваем полное покрытие всех операций PyTorch.

Если у вас есть предложения по API или варианты использования, которые вы хотели бы видеть, создайте задачу на GitHub или свяжитесь с нами. Мы будем рады узнать, как вы используете эту библиотеку.

Что такое компонуемые преобразования функций?

  • «Преобразование функции» — это функция высшего порядка, которая принимает числовую функцию и возвращает новую функцию, вычисляющую другую величину.
  • torch.func содержит преобразования для автоматического дифференцирования (grad(f) возвращает функцию, вычисляющую градиент f), преобразование для векторизации/пакетной обработки (vmap(f) возвращает функцию, вычисляющую f для пакетов входных данных) и другие.
  • Эти преобразования функций можно произвольно комбинировать друг с другом. Например, композиция vmap(grad(f)) вычисляет величину, называемую градиентами для отдельных примеров, которую стандартный PyTorch сегодня не может эффективно вычислить.

Зачем нужны компонуемые преобразования функций?

В настоящее время в PyTorch есть ряд задач, решение которых затруднительно:

  • вычисление градиентов для отдельных примеров (или других величин для отдельных примеров)
  • запуск ансамблей моделей на одном компьютере
  • эффективная пакетная обработка задач во внутреннем цикле MAML
  • эффективное вычисление матриц Якоби и Гессе
  • эффективное пакетное вычисление матриц Якоби и Гессе

Комбинация преобразований vmap(), grad() и vjp() позволяет реализовать описанные выше возможности без создания отдельной подсистемы для каждой из них. Идея компонуемых преобразований функций взята из фреймворка JAX.

Подробнее

  • Краткий обзор torch.func
    • Что такое torch.func?
    • Зачем нужны компонуемые преобразования функций?
    • Что представляют собой преобразования?
  • Справочник по API torch.func
    • Преобразования функций
    • Утилиты для работы с модулями torch.nn
    • Утилиты отладки
  • Ограничения UX
    • Общие ограничения
    • API torch.autograd
    • Ограничения vmap
    • Случайность
  • Переход с functorch на torch.func
    • Преобразования функций
    • Утилиты для модулей NN
    • functorch.compile

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/func.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API