torch.nn
Это базовые строительные блоки для графов:
torch.nn
- Контейнеры
- Сверточные слои
- Слои пулинга
- Слои заполнения
- Нелинейные активации (взвешенная сумма, нелинейность)
- Нелинейные активации (другие)
- Слои нормализации
- Рекуррентные слои
- Слои трансформатора
- Линейные слои
- Слои дропаута
- Разреженные слои
- Функции расстояния
- Функции потерь
- Слои компьютерного зрения
- Слои перемешивания
- Слои DataParallel (многопроцессорные, распределенные)
- Утилиты
- Квантованные функции
- Инициализация ленивых модулей
Parameter
| Вид тензора, который следует рассматривать как параметр модуля. |
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_hook
| Регистрирует обратный хук, общий для всех модулей. |
Сверточные слои
Применяет 1D свертку к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 2D свертку к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 3D свертку к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 1D оператор транспонированной свертки к входному изображению, состоящему из нескольких входных плоскостей. | |
Применяет 2D оператор транспонированной свертки к входному изображению, состоящему из нескольких входных плоскостей. | |
Применяет 3D оператор транспонированной свертки к входному изображению, состоящему из нескольких входных плоскостей. | |
Модуль | |
… | … |
Слой пулинга
Применяет 1D максимальный пулинг к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 2D максимальный пулинг к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 3D максимальный пулинг к входному сигналу, состоящему из нескольких входных плоскостей. | |
Вычисляет частичное обращение | |
Вычисляет частичное обращение | |
Вычисляет частичное обращение | |
Применяет 1D средний пулинг к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 2D средний пулинг к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 3D средний пулинг к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 2D дробный максимальный пулинг к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 3D дробный максимальный пулинг к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 1D пулинг с усреднением в степени к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 2D пулинг с усреднением в степени к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 1D адаптивный максимальный пулинг к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 2D адаптивный максимальный пулинг к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 3D адаптивный максимальный пулинг к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 1D адаптивный средний пулинг к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 2D адаптивный средний пулинг к входному сигналу, состоящему из нескольких входных плоскостей. | |
Применяет 3D адаптивный средний пулинг к входному сигналу, состоящему из нескольких входных плоскостей. |
Слои заполнения
Заполняет входной тензор, используя отражение границ. | |
Заполняет входной тензор, используя отражение границ. | |
Заполняет входной тензор, используя отражение границ. | |
Заполняет входной тензор, используя копирование границ. | |
Заполняет входной тензор, используя копирование границ. | |
Заполняет входной тензор, используя копирование границ. | |
Заполняет границы входного тензора нулями. | |
Заполняет границы входного тензора константным значением. | |
Заполняет границы входного тензора константным значением. | |
Заполняет границы входного тензора константным значением. |
Нелинейные активации (взвешенная сумма, нелинейность)
Применяет функцию Exponential Linear Unit (ELU) поэлементно, как описано в статье: Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs). | |
Применяет функцию Hard Shrinkage (Hardshrink) поэлементно. | |
Применяет функцию Hardsigmoid поэлементно. | |
Применяет функцию HardTanh поэлементно. | |
Применяет функцию Hardswish поэлементно, как описано в статье: Searching for MobileNetV3. | |
Применяет поэлементную функцию: | |
Применяет поэлементную функцию: | |
Позволяет модели совместно обращать внимание на информацию из различных подпространств представлений, как описано в статье: Attention Is All You Need. | |
Применяет поэлементную функцию: | |
Применяет функцию выпрямленного линейного блока (ReLU) поэлементно: | |
Применяет поэлементную функцию: | |
Применяет функцию случайного утечки выпрямленного линейного блока (RReLU) поэлементно, как описано в статье: | |
Применяется поэлементно, как: | |
Применяет поэлементную функцию: | |
Применяет функцию Гауссовских ошибок линейного блока (GELU): | |
Применяет поэлементную функцию: | |
Применяет функцию Sigmoid Linear Unit (SiLU) поэлементно. | |
Применяет функцию Mish поэлементно. | |
Применяет функцию Softplus поэлементно. | |
Применяет функцию мягкого сжатия поэлементно: | |
Применяет поэлементную функцию: | |
Применяет гиперболическую тангенс (Tanh) функцию поэлементно. | |
Применяет поэлементную функцию: | |
Устанавливает порог для каждого элемента тензора. | |
Применяет функцию линейного блока с шлюзом где - первая половина входных матриц, а - вторая половина. |
Нелинейные активации (другие)
Применяет функцию Softmin к тензору n-мерного ввода, масштабируя их так, чтобы элементы n-мерного выходного тензора лежали в диапазоне | |
Применяет функцию Softmax к n-мерному входному тензору, масштабируя их так, чтобы элементы n-мерного выходного тензора лежали в диапазоне [0,1] и суммировались до 1. | |
Применяет SoftMax по признакам к каждому пространственному положению. | |
Применяет функцию к n-мерному входному тензору. | |
Эффективное приближение softmax, как описано в Efficient softmax approximation for GPUs by Edouard Grave, Armand Joulin, Moustapha Cissé, David Grangier, and Hervé Jégou. |
Слои нормализации
Применяет пакетную нормализацию к двумерному или трехмерному входу, как описано в статье Batch Normalization: Ускорение обучения глубоких сетей путем уменьшения смещения внутренних ковариаций. | |
Применяет пакетную нормализацию к 4-мерному входу (микро-пакет 2-мерных входов с дополнительным канальным измерением), как описано в статье Batch Normalization: Ускорение обучения глубоких сетей путем уменьшения смещения внутренних ковариаций. | |
Применяет пакетную нормализацию к 5-мерному входу (микро-пакет 3-мерных входов с дополнительным канальным измерением), как описано в статье Batch Normalization: Ускорение обучения глубоких сетей путем уменьшения смещения внутренних ковариаций. | |
Модуль | |
Модуль | |
Модуль | |
Применяет групповую нормализацию к микро-пакету входов, как описано в статье Group Normalization | |
Применяет пакетную нормализацию к N-мерному входу (микро-пакет [N-2]-мерных входов с дополнительным канальным измерением), как описано в статье Batch Normalization: Ускорение обучения глубоких сетей путем уменьшения смещения внутренних ковариаций. | |
Применяет нормализацию по экземпляру к двумерному (без пакетности) или трехмерному (с пакетностью) входу, как описано в статье Instance Normalization: Пропущенный ингредиент для быстрой стилизации. | |
Применяет нормализацию по экземпляру к 4-мерному входу (микро-пакет 2-мерных входов с дополнительным канальным измерением), как описано в статье Instance Normalization: Пропущенный ингредиент для быстрой стилизации. | |
Применяет нормализацию по экземпляру к 5-мерному входу (микро-пакет 3-мерных входов с дополнительным канальным измерением), как описано в статье Instance Normalization: Пропущенный ингредиент для быстрой стилизации. | |
Модуль | |
Модуль | |
Модуль | |
Применяет нормализацию по слоям к микро-пакету входов, как описано в статье Layer Normalization | |
Применяет локальную нормализацию по ответу к входному сигналу, состоящему из нескольких входных плоскостей, где каналы занимают второе измерение. |
Рекуррентные слои
Применяет многослойный рекуррентный модуль Элмана с нелинейностью или к последовательности ввода. | |
Применяет многослойный рекуррентный модуль LSTM (долгосрочная краткосрочная память) к последовательности ввода. | |
Применяет многослойный рекуррентный модуль GRU (узел с управляемым повторением) к последовательности ввода. | |
Ячейка рекуррентного модуля Элмана с нелинейностью tanh или ReLU. | |
Ячейка LSTM (долгосрочной краткосрочной памяти). | |
Ячейка GRU (узел с управляемым повторением) |
Слои трансформатора
Модель трансформатора. | |
TransformerEncoder — это стопка N слоев кодировщика. | |
TransformerDecoder — это стопка N слоев декодировщика | |
TransformerEncoderLayer состоит из само-внимания и сети прямого прохода. | |
TransformerDecoderLayer состоит из само-внимания, многоголового внимания и сети прямого прохода. |
Линейные слои
Оператор тождества-заполнитель, не зависящий от аргумента. | |
Применяет линейное преобразование к входным данным: | |
Применяет билинейное преобразование к входным данным: | |
Модуль |
Слои Dropout
Во время обучения случайным образом обнуляет некоторые элементы тензора входных данных с вероятностью | |
Случайным образом обнуляет целые каналы (канал — это 1D карта признаков, например, -й канал -й выборки в пакетном входе — это 1D тензор ). | |
Случайным образом обнуляет целые каналы (канал — это 2D карта признаков, например, -й канал -й выборки в пакетном входе — это 2D тензор ). | |
Случайным образом обнуляет целые каналы (канал — это 3D карта признаков, например, -й канал -й выборки в пакетном входе — это 3D тензор ). | |
Применяет Alpha Dropout к входу. | |
Случайным образом маскирует целые каналы (канал — это карта признаков, например) |
Разреженные слои
Простая таблица поиска, которая хранит вложения фиксированного словаря и размера. | |
Вычисляет суммы или средние значения 'мешков' вложений без создания промежуточных вложений. |
Функции расстояния
Возвращает косинусное сходство между и , вычисленное по | |
Вычисляет парное расстояние между векторами ввода или между столбцами матриц ввода. |
Функции потерь
Создает критерий, который измеряет среднюю абсолютную ошибку (MAE) между каждым элементом ввода и целевым значением . | |
Создает критерий, который измеряет среднеквадратичную ошибку (квадратную L2 норму) между каждым элементом ввода и целевым значением . | |
Этот критерий вычисляет потерю кросс-энтропии между входными логами и целевым значением. | |
Потеря классификации временных последовательностей (Connectionist Temporal Classification). | |
Потеря отрицательного логарифмического правдоподобия. | |
Потеря отрицательного логарифмического правдоподобия с распределением Пуассона для целевого значения. | |
Потеря отрицательного логарифмического правдоподобия Гаусса. | |
Потеря расхождения Кульбака-Лейблера. | |
Создает критерий, который измеряет бинарную кросс-энтропию между целевым значением и вероятностями ввода: | |
Эта потеря объединяет слой | |
Создает критерий, который измеряет потерю, учитывая входы , , два 1D мини-пакета или 0D | |
Измеряет потерю, учитывая входной тензор и тензор меток (содержащий 1 или -1). | |
Создает критерий, который оптимизирует многоклассовую многоклассовую потерю хинджа (основанную на отступе) между входом (2D мини-пакет | |
Создает критерий, который использует квадратный член, если абсолютная ошибка по элементам меньше дельта, и член дельта, умноженный на L1, в противном случае. | |
Создает критерий, который использует квадратный член, если абсолютная ошибка по элементам меньше бета, и член L1 в противном случае. | |
Создает критерий, который оптимизирует логистическую потерю двухклассовой классификации между входным тензором и целевым тензором (содержащим 1 или -1). | |
Создает критерий, который оптимизирует потерю по методу «один против всех» для многомерной классификации на основе максимума энтропии между входом и целевым значением размера . | |
Создает критерий, который измеряет потерю, учитывая входные тензоры , и метку | |
Создает критерий, который оптимизирует многоклассовую классификационную потерю хинджа (основанную на отступе) между входом (2D мини-пакет |
Создаёт критерий, который измеряет потерю тройки, используя входные тензоры , , и границу со значением, большим . | |
Создаёт критерий, который измеряет потерю тройки, используя входные тензоры , и (представляющие соответственно якорь, положительный и отрицательный примеры), и неотрицательную вещественную функцию («функция расстояния»), используемую для вычисления взаимосвязи между якорем и положительным примером («положительное расстояние») и якорем и отрицательным примером («отрицательное расстояние»). |
Функции обработки изображений
Переупорядочивает элементы в тензоре формы в тензор формы , где r – коэффициент масштабирования. | |
Обратный процесс к | |
Увеличивает масштаб заданных многоканальных 1D (временных), 2D (пространственных) или 3D (объёмных) данных. | |
Применяет двумерное ближайшее-соседнее увеличение масштаба к входному сигналу, состоящему из нескольких входных каналов. | |
Применяет двумерное билинейное увеличение масштаба к входному сигналу, состоящему из нескольких входных каналов. |
Слои перемешивания
Разделяет каналы в тензоре формы на g групп и переупорядочивает их как , сохраняя при этом исходную форму тензора. |
Слои DataParallel (многопроцессорные, распределённые)
Реализует распределение данных на уровне модуля. | |
Реализует распределённое распределение данных, основанное на пакете |
Утилиты
Из модуля torch.nn.utils
clip_grad_norm_
| Обрезает норму градиента итерируемого набора параметров. |
clip_grad_value_
| Обрезает градиент итерируемого набора параметров до указанного значения. |
parameters_to_vector
| Преобразовать параметры в один вектор |
vector_to_parameters
| Преобразовать один вектор в параметры |
Абстрактный базовый класс для создания новых техник обрезки. |
Контейнер, содержащий последовательность методов обрезки для итеративной обрезки. | |
Утилитарный метод обрезки, который не обрезает единицы, но генерирует параметризацию обрезки с маской из единиц. | |
Случайно обрезает (в настоящее время не обрезанные) единицы в тензоре. | |
Обрезает (в настоящее время не обрезанные) единицы в тензоре, обнуляя те, у которых наименьшая норма L1. | |
Случайно обрезает целые (в настоящее время не обрезанные) каналы в тензоре. | |
Обрезает целые (в настоящее время не обрезанные) каналы в тензоре на основе их L | |
Применяет параметризацию обрезки к тензору, соответствующему параметру, названному | |
Обрезает тензор, соответствующий параметру, названному | |
Обрезает тензор, соответствующий параметру, названному | |
Обрезает тензор, соответствующий параметру, названному | |
Обрезает тензор, соответствующий параметру, названному | |
Глобально обрезает тензоры, соответствующие всем параметрам в | |
Обрезает тензор, соответствующий параметру, названному | |
Удаляет параметризацию обрезки из модуля и метод обрезки из обратного хука. | |
Проверить, обрезан ли | |
weight_norm
| Применяет нормализацию весов к параметру в заданном модуле. |
remove_weight_norm
| Удаляет параметризацию нормализации весов из модуля. |
spectral_norm
| Применяет спектральную нормализацию к параметру в заданном модуле. |
remove_spectral_norm
| Удаляет параметризацию спектральной нормализации из модуля. |
skip_init
| Учитывая объект класса модуля и args/kwargs, инициализирует модуль без инициализации параметров/буферов. |
Параметризации, реализованные с помощью новой функциональности параметризации в torch.nn.utils.parameterize.register_parametrization().
Применяет ортогональную или унитарную параметризацию к матрице или набору матриц. | |
Применяет спектральную нормализацию к параметру в заданном модуле. |
Утилитарные функции для параметризации тензоров в существующих модулях. Обратите внимание, что эти функции могут использоваться для параметризации заданного параметра или буфера, заданного определенной функцией, которая отображает из входного пространства в параметризованное пространство. Они не являются параметризациями, которые преобразуют объект в параметр. См. учебник по параметризациям для получения дополнительной информации о том, как реализовать собственные параметризации.
Добавляет параметризацию к тензору в модуле. | |
Удаляет параметризации из тензора в модуле. | |
Менеджер контекста, который включает систему кэширования в параметризациях, зарегистрированных с | |
Возвращает |
Последовательная контейнер, содержащий и управляющий параметрами или буферами, |
Функции-утилиты для вызова данного модуля в бессостоятельном режиме.
Выполняет функциональный вызов модуля, заменяя параметры и буферы модуля предоставленными. |
Функции-утилиты в других модулях
Содержит данные и список | |
Упаковывает тензор, содержащий заполненные последовательности переменной длины. | |
Заполняет упакованную партию последовательностей переменной длины. | |
Заполняет список тензоров переменной длины с | |
Упаковывает список тензоров переменной длины |
Разворачивает непрерывный диапазон измерений в тензор. | |
Развертывает тензор, расширяя его до желаемой формы. |
Функции квантования
Квантование относится к методам вычислений и хранения тензоров с меньшей разрядностью, чем с плавающей точкой. PyTorch поддерживает как линейное асимметричное квантование по тензору, так и по каналу. Для получения более подробной информации о том, как использовать квантованные функции в PyTorch, обратитесь к документации по квантованию.
Инициализация ленивых модулей
Mixin для модулей, которые лениво инициализируют параметры, также известные как «ленивые модули». |
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/nn.html