torch.nn
Создано: 23 дек. 2016 г. | Последнее обновление: 02 июн. 2026 г.
Это основные строительные блоки графов:
- Контейнеры
- Слои свёртки
- Слои пулинга
- Слои дополнения
- Нелинейные функции активации (взвешенная сумма, нелинейность)
- Нелинейные функции активации (прочие)
- Слои нормализации
- Рекуррентные слои
- Слои трансформера
- Линейные слои
- Слои прореживания
- Разреженные слои
- Функции расстояния
- Функции потерь
- Слои компьютерного зрения
- Слои перемешивания
- Слои DataParallel (несколько GPU, распределённые вычисления)
- Утилиты
- Квантованные функции
- Инициализация ленивых модулей
Buffer
| Тип Tensor, который не следует считать параметром модели. |
Parameter
| Тип Tensor, который следует считать параметром модуля. |
UninitializedParameter
| Неинициализированный параметр. |
UninitializedBuffer
| Неинициализированный буфер. |
Контейнеры
Module
| Базовый класс для всех модулей нейронных сетей. |
Sequential
| Последовательный контейнер. |
ModuleList
| Содержит подмодули в списке. |
ModuleDict
| Содержит подмодули в словаре. |
ParameterList
| Содержит параметры в списке. |
ParameterDict
| Содержит параметры в словаре. |
Глобальные хуки модулей
register_module_forward_pre_hook
| Регистрирует общий для всех модулей предварительный хук прямого прохода. |
register_module_forward_hook
| Регистрирует глобальный хук прямого прохода для всех модулей. |
register_module_backward_hook
| Регистрирует общий для всех модулей хук обратного прохода. |
register_module_full_backward_pre_hook
| Регистрирует общий для всех модулей предварительный хук обратного прохода. |
register_module_full_backward_hook
| Регистрирует общий для всех модулей хук обратного прохода. |
register_module_buffer_registration_hook
| Регистрирует общий для всех модулей хук регистрации буферов. |
register_module_module_registration_hook
| Регистрирует общий для всех модулей хук регистрации модулей. |
register_module_parameter_registration_hook
| Регистрирует общий для всех модулей хук регистрации параметров. |
Слои свёртки
Выполняет одномерную свёртку входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет двумерную свёртку входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет трёхмерную свёртку входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет оператор одномерной транспонированной свёртки над входным изображением, состоящим из нескольких входных плоскостей. | |
Выполняет оператор двумерной транспонированной свёртки над входным изображением, состоящим из нескольких входных плоскостей. | |
Выполняет оператор трёхмерной транспонированной свёртки над входным изображением, состоящим из нескольких входных плоскостей. | |
Модуль | |
Модуль | |
Модуль | |
Модуль | |
Модуль | |
Модуль | |
Извлекает скользящие локальные блоки из пакетного входного тензора. | |
Объединяет массив скользящих локальных блоков в большой содержащий их тензор. |
Слои пулинга
Выполняет одномерный пулинг максимума входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет двумерный пулинг максимума входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет трёхмерный пулинг максимума входного сигнала, состоящего из нескольких входных плоскостей. | |
Вычисляет частичную обратную операцию для | |
Вычисляет частичную обратную операцию для | |
Вычисляет частичную обратную операцию для | |
Выполняет одномерный пулинг среднего значения входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет двумерный пулинг среднего значения входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет трёхмерный пулинг среднего значения входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет двумерный дробный пулинг максимума входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет трёхмерный дробный пулинг максимума входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет одномерный степенной пулинг среднего значения входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет двумерный степенной пулинг среднего значения входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет трёхмерный степенной пулинг среднего значения входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет адаптивный одномерный пулинг максимума входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет адаптивный двумерный пулинг максимума входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет адаптивный трёхмерный пулинг максимума входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет адаптивный одномерный пулинг среднего значения входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет адаптивный двумерный пулинг среднего значения входного сигнала, состоящего из нескольких входных плоскостей. | |
Выполняет адаптивный трёхмерный пулинг среднего значения входного сигнала, состоящего из нескольких входных плоскостей. |
Слои дополнения
Дополняет входной тензор, отражая его границы. | |
Дополняет входной тензор, отражая его границы. | |
Дополняет входной тензор, отражая его границы. | |
Дополняет входной тензор, копируя значения на его границах. | |
Дополняет входной тензор, копируя значения на его границах. | |
Дополняет входной тензор, копируя значения на его границах. | |
Дополняет границы входного тензора нулями. | |
Дополняет границы входного тензора нулями. | |
Дополняет границы входного тензора нулями. | |
Дополняет границы входного тензора постоянным значением. | |
Дополняет границы входного тензора постоянным значением. | |
Дополняет границы входного тензора постоянным значением. | |
Дополняет входной тензор циклическим образом, используя значения на его границах. | |
Дополняет входной тензор циклическим образом, используя значения на его границах. | |
Дополняет входной тензор циклическим образом, используя значения на его границах. |
Нелинейные функции активации (взвешенная сумма, нелинейность)
Поэлементно применяет функцию экспоненциальной линейной единицы (ELU). | |
Поэлементно применяет функцию жёсткого сжатия (Hardshrink). | |
Поэлементно применяет функцию Hardsigmoid. | |
Поэлементно применяет функцию HardTanh. | |
Поэлементно применяет функцию Hardswish. | |
Поэлементно применяет функцию LeakyReLU. | |
Поэлементно применяет функцию LogSigmoid. | |
Позволяет модели совместно учитывать информацию из различных подпространств представлений. | |
Поэлементно применяет функцию PReLU. | |
Поэлементно применяет функцию выпрямленной линейной единицы. | |
Поэлементно применяет функцию ReLU6. | |
Поэлементно применяет функцию рандомизированной выпрямленной линейной единицы с утечкой. | |
Поэлементно применяет функцию SELU. | |
Поэлементно применяет функцию CELU. | |
Применяет функцию гауссовой линейной единицы. | |
Поэлементно применяет функцию Sigmoid. | |
Поэлементно применяет функцию сигмоидальной линейной единицы (SiLU). | |
Поэлементно применяет функцию Mish. | |
Поэлементно применяет функцию Softplus. | |
Поэлементно применяет функцию мягкого сжатия. | |
Поэлементно применяет функцию Softsign. | |
Поэлементно применяет функцию гиперболического тангенса (Tanh). | |
Поэлементно применяет функцию Tanhshrink. | |
Применяет пороговую функцию к каждому элементу входного Tensor. | |
Применяет функцию gated linear unit. |
Нелинейные функции активации (прочие)
Применяет функцию Softmin к n-мерному входному Tensor. | |
Применяет функцию Softmax к n-мерному входному Tensor. | |
Применяет SoftMax по признакам в каждой пространственной позиции. | |
Применяет функцию к n-мерному входному Tensor. | |
Эффективное приближение softmax. |
Слои нормализации
Применяет пакетную нормализацию к входным данным размерности 2D или 3D. | |
Применяет пакетную нормализацию к входным данным размерности 4D. | |
Применяет пакетную нормализацию к входным данным размерности 5D. | |
Модуль | |
Модуль | |
Модуль | |
Применяет групповую нормализацию к мини-пакету входных данных. | |
Применяет пакетную нормализацию к входным данным N-мерной размерности. | |
Применяет нормализацию экземпляра. | |
Применяет нормализацию экземпляра. | |
Применяет нормализацию экземпляра. | |
Модуль | |
Модуль | |
Модуль | |
Применяет послойную нормализацию к мини-пакету входных данных. | |
Применяет локальную нормализацию отклика к входному сигналу. | |
Применяет послойную нормализацию по среднеквадратичному значению к мини-пакету входных данных. |
Рекуррентные слои
Базовый класс для модулей RNN (RNN, LSTM, GRU). | |
Применяет к входной последовательности многослойную RNN Эльмана с нелинейностью или . | |
Применяет к входной последовательности многослойную рекуррентную нейронную сеть с долговременной краткосрочной памятью (LSTM). | |
Применяет к входной последовательности многослойную рекуррентную нейронную сеть с управляемыми рекуррентными блоками (GRU). | |
Ячейка RNN Эльмана с нелинейностью tanh или ReLU. | |
Ячейка долговременной краткосрочной памяти (LSTM). | |
Ячейка с управляемыми рекуррентными блоками (GRU). |
Слои Transformer
Базовый слой Transformer. | |
TransformerEncoder — это стек из N слоёв кодировщика. | |
TransformerDecoder — это стек из N слоёв декодировщика. | |
TransformerEncoderLayer состоит из механизма self-attention и полносвязной сети. | |
TransformerDecoderLayer состоит из механизма self-attention, многоголового механизма attention и полносвязной сети. |
Линейные слои
Заполнитель — тождественный оператор, не зависящий от аргументов. | |
Применяет к входным данным аффинное линейное преобразование: . | |
Применяет к входным данным билинейное преобразование: . | |
Модуль |
Слои Dropout
Во время обучения случайным образом обнуляет некоторые элементы входного тензора с вероятностью | |
Случайным образом обнуляет целые каналы. | |
Случайным образом обнуляет целые каналы. | |
Случайным образом обнуляет целые каналы. | |
Применяет Alpha Dropout к входным данным. | |
Случайным образом маскирует целые каналы. |
Разреженные слои
Простая таблица поиска, хранящая эмбеддинги словаря фиксированного размера. | |
Вычисляет суммы или средние значения «пакетов» эмбеддингов, не создавая промежуточные эмбеддинги. |
Функции расстояния
Возвращает косинусное сходство между и , вычисленное вдоль | |
Вычисляет попарное расстояние между входными векторами или между столбцами входных матриц. |
Функции потерь
Создаёт критерий, вычисляющий среднюю абсолютную ошибку (MAE) между каждым элементом входных данных и целевых данных . | |
Создаёт критерий, вычисляющий среднеквадратичную ошибку (квадрат нормы L2) между каждым элементом входных данных и целевых данных . | |
Этот критерий вычисляет функцию потерь на основе перекрёстной энтропии между входными логитами и целевыми данными. | |
Этот критерий вычисляет функцию потерь на основе перекрёстной энтропии между входными данными, линейно преобразованными в логиты, и целевыми данными. | |
Настройки для реализации | |
Функция потерь Connectionist Temporal Classification. | |
Функция потерь на основе отрицательного логарифма правдоподобия. | |
Функция потерь на основе отрицательного логарифма правдоподобия с распределением Пуассона для целевых данных. | |
Функция потерь на основе отрицательного логарифма правдоподобия с гауссовым распределением. | |
Функция потерь на основе дивергенции Кульбака — Лейблера. | |
Создаёт критерий, вычисляющий бинарную перекрёстную энтропию между целевыми данными и входными вероятностями: | |
Эта функция потерь объединяет слой | |
Создаёт критерий, вычисляющий потери для входных данных , , представляющих собой мини-пакет размерности 1D или скаляры размерности 0D | |
Вычисляет потери для входного тензора и тензора меток (содержащего 1 или -1). | |
Создаёт критерий, оптимизирующий функцию потерь на основе hinge loss (потери на основе отступа) для многоклассовой классификации с несколькими метками между входными данными (мини-пакетом размерности 2D | |
Создаёт критерий, использующий квадратичный член, если абсолютная поэлементная ошибка меньше delta, и член L1, масштабированный на delta, в противном случае. | |
Создаёт критерий, использующий квадратичный член, если абсолютная поэлементная ошибка меньше beta, и член L1 в противном случае. | |
Создаёт критерий, оптимизирующий логистическую функцию потерь для бинарной классификации между входным тензором и целевым тензором (содержащим 1 или -1). | |
Создаёт критерий, оптимизирующий функцию потерь «один против всех» для нескольких меток на основе максимальной энтропии между входными данными и целевыми данными размера . | |
Создаёт критерий, вычисляющий потери для входных тензоров , и метки | |
Создаёт критерий, оптимизирующий функцию потерь на основе hinge loss (потери на основе отступа) для многоклассовой классификации между входными данными (мини-пакетом размерности 2D | |
Создаёт критерий, вычисляющий триплетную функцию потерь для входных тензоров , , и отступа со значением больше . | |
Создаёт критерий, вычисляющий триплетную функцию потерь для входных тензоров , и (соответственно представляющих опорный, положительный и отрицательный примеры), а также неотрицательной вещественнозначной функции («функции расстояния»), используемой для вычисления взаимосвязи между опорным и положительным примерами («положительное расстояние»), а также между опорным и отрицательным примерами («отрицательное расстояние»). |
Слои для компьютерного зрения
Переставляет элементы тензора в соответствии с коэффициентом увеличения. | |
Выполняет обратную операцию PixelShuffle. | |
Увеличивает размерность многоканальных данных размерности 1D (временных), 2D (пространственных) или 3D (объёмных). | |
Применяет к входному сигналу, состоящему из нескольких входных каналов, двумерную передискретизацию методом ближайшего соседа. | |
Применяет к входному сигналу, состоящему из нескольких входных каналов, двумерную билинейную передискретизацию. |
Слои перемешивания
Разделяет и переставляет каналы в тензоре. |
Слои DataParallel (несколько GPU, распределённая обработка)
Реализует параллелизм данных на уровне модуля. | |
Реализует распределённый параллелизм данных на основе |
Утилиты
Из модуля torch.nn.utils:
Вспомогательные функции для ограничения градиентов параметров.
clip_grad_norm_
| Ограничивает норму градиента итерируемого объекта параметров. |
clip_grad_norm
| Ограничивает норму градиента итерируемого объекта параметров. |
clip_grad_value_
| Ограничивает градиенты итерируемого объекта параметров заданным значением. |
get_total_norm
| Вычисляет норму итерируемого объекта тензоров. |
clip_grads_with_norm_
| Масштабирует градиенты итерируемого объекта параметров с учётом предварительно вычисленной общей нормы и желаемой максимальной нормы. |
Вспомогательные функции для преобразования параметров Module в один вектор и обратно.
parameters_to_vector
| Преобразует итерируемый объект параметров в один вектор. |
vector_to_parameters
| Копирует срезы вектора в итерируемый объект параметров. |
Вспомогательные функции для объединения модулей с модулями BatchNorm.
fuse_conv_bn_eval
| Объединяет модуль свёртки и модуль BatchNorm в один новый модуль свёртки. |
fuse_conv_bn_weights
| Объединяет параметры модуля свёртки и модуля BatchNorm в параметры нового модуля свёртки. |
fuse_linear_bn_eval
| Объединяет линейный модуль и модуль BatchNorm в один новый линейный модуль. |
fuse_linear_bn_weights
| Объединяет параметры линейного модуля и модуля BatchNorm в параметры нового линейного модуля. |
Вспомогательные функции для преобразования форматов памяти параметров Module.
convert_conv2d_weight_memory_format
| Преобразует |
convert_conv3d_weight_memory_format
| Преобразует |
Вспомогательные функции для применения и удаления нормализации весов параметров Module.
weight_norm
| Применяет нормализацию весов к параметру указанного модуля. |
remove_weight_norm
| Удаляет репараметризацию нормализации весов из модуля. |
spectral_norm
| Применяет спектральную нормализацию к параметру указанного модуля. |
remove_spectral_norm
| Удаляет репараметризацию спектральной нормализации из модуля. |
Вспомогательные функции для инициализации параметров Module.
skip_init
| Создаёт экземпляр модуля по объекту класса модуля и аргументам args / kwargs, не инициализируя параметры / буферы. |
Вспомогательные классы и функции для прореживания параметров Module.
Абстрактный базовый класс для создания новых методов прореживания. | |
Контейнер, содержащий последовательность методов прореживания для итеративного прореживания. | |
Вспомогательный метод прореживания, который не удаляет никакие элементы, но создаёт параметризацию прореживания с маской из единиц. | |
Случайным образом прореживает элементы тензора, которые ещё не были прорежены. | |
Прореживает элементы тензора, которые ещё не были прорежены, обнуляя элементы с наименьшей L1-нормой. | |
Случайным образом прореживает целые каналы тензора, которые ещё не были прорежены. | |
Прореживает целые каналы тензора, которые ещё не были прорежены, на основе их L | |
Применяет репараметризацию прореживания, не удаляя никаких элементов. | |
Прореживает тензор, удаляя случайные элементы, которые ещё не были прорежены. | |
Прореживает тензор, удаляя элементы с наименьшей L1-нормой. | |
Прореживает тензор, удаляя случайные каналы вдоль указанного измерения. | |
Прореживает тензор, удаляя каналы с наименьшей L | |
Выполняет глобальное прореживание тензоров, соответствующих всем параметрам в | |
Прореживает тензор, соответствующий параметру с именем | |
Удаляет репараметризацию прореживания из модуля и метод прореживания из перехватчика forward. | |
Проверяет, прорежен ли модуль, проверяя наличие предварительных перехватчиков прореживания. |
Параметризации, реализованные с использованием новой функциональности параметризации в torch.nn.utils.parameterize.register_parametrization().
Применяет ортогональную или унитарную параметризацию к матрице или пакету матриц. | |
Применяет нормализацию весов к параметру указанного модуля. | |
Применяет спектральную нормализацию к параметру указанного модуля. |
Вспомогательные функции для параметризации тензоров в существующих модулях. Обратите внимание, что эти функции можно использовать для параметризации заданного параметра или буфера с помощью определённой функции, отображающей входное пространство в пространство параметризации. Они не являются параметризациями, преобразующими объект в параметр. Дополнительные сведения о реализации собственных параметризаций см. в руководстве по параметризациям.
Регистрирует параметризацию для тензора в модуле. | |
Удаляет параметризации тензора в модуле. | |
Менеджер контекста, включающий кеширование для параметризаций, зарегистрированных с помощью | |
Определяет, имеет ли модуль параметризацию. | |
Переносит параметризации и параметры, которые они параметризуют, из | |
Возвращает тип модуля до применения параметризаций; если параметризации не применялись, возвращает тип модуля. |
Последовательный контейнер, который хранит исходные параметры или буферы параметризованного |
Вспомогательные функции для вызова заданного Module без сохранения состояния.
Выполняет функциональный вызов модуля, заменяя параметры и буферы модуля предоставленными значениями. |
Вспомогательные функции из других модулей
Содержит данные и список | |
Упаковывает тензор, содержащий последовательности переменной длины с дополнением. | |
Дополняет упакованный пакет последовательностей переменной длины. | |
Дополняет список тензоров переменной длины значением | |
Упаковывает список тензоров переменной длины. | |
Распаковывает PackedSequence в список тензоров переменной длины. | |
Удаляет дополнение из дополненного тензора и возвращает список тензоров переменной длины. | |
Возвращает обратную перестановку | |
Возвращает, является ли | |
Возвращает канонизированный словарь аргументов фабрики. |
Объединяет непрерывный диапазон измерений в тензоре. | |
Разворачивает измерение тензора, расширяя его до заданной формы. |
Квантованные функции
Квантование — это методы выполнения вычислений и хранения тензоров с меньшей разрядностью, чем при вычислениях с плавающей точкой. PyTorch поддерживает асимметричное линейное квантование как по тензору, так и по каналам. Дополнительные сведения об использовании квантованных функций в PyTorch см. в документации по квантованию.
Инициализация ленивых модулей
Примесь для модулей, которые лениво инициализируют параметры; такие модули также называют «ленивыми модулями». |
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/nn.html