torch.nn
Это основные строительные блоки для графиков:
torch.nn
- Контейнеры
- Сверточные слои
- Слои пулинга
- Слои заполнения
- Нелинейные активации (взвешенная сумма, нелинейность)
- Нелинейные активации (другие)
- Слои нормализации
- Рекуррентные слои
- Слои трансформеров
- Линейные слои
- Слои дропаута
- Разреженные слои
- Функции расстояния
- Функции потерь
- Слои компьютерного зрения
- Слои перемешивания
- Слои DataParallel (много-GPU, распределенные)
- Утилиты
- Квантованные функции
- Инициализация ленивых модулей
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_pre_hook
| Регистрирует предход обратного хука для всех модулей. |
register_module_full_backward_hook
| Регистрирует обратный хук для всех модулей. |
register_module_buffer_registration_hook
| Регистрирует хук для регистрации буферов для всех модулей. |
register_module_module_registration_hook
| Регистрирует хук для регистрации модулей для всех модулей. |
register_module_parameter_registration_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. | |
Применяет поэлементно функцию: | |
Применяет функцию выпрямленного линейного блока поэлементно: | |
Применяет поэлементно функцию: | |
Применяет функцию случайного утечки выпрямленного линейного блока поэлементно, как описано в статье: | |
Применяется поэлементно, как: | |
Применяет поэлементно функцию: | |
Применяет функцию Gaussian Error Linear Units: | |
Применяет поэлементно функцию: | |
Применяет функцию 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 к 2D или 3D входным данным, как описано в статье Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift. | |
Применяет Batch Normalization к 4D входным данным (минимальная партия 2D входов с дополнительным каналом) как описано в статье Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift. | |
Применяет Batch Normalization к 5D входным данным (минимальная партия 3D входов с дополнительным каналом) как описано в статье Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift. | |
Модуль | |
Модуль | |
Модуль | |
Применяет Group Normalization к мини-пачке входных данных, как описано в статье Group Normalization | |
Применяет Batch Normalization к N-мерному входу (мини-пачке [N-2]-мерных входов с дополнительным каналом), как описано в статье Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift. | |
Применяет Instance Normalization к 2D (незагруженному) или 3D (загруженному) входу, как описано в статье Instance Normalization: The Missing Ingredient for Fast Stylization. | |
Применяет Instance Normalization к 4D входным данным (мини-пачка 2D входов с дополнительным каналом) как описано в статье Instance Normalization: The Missing Ingredient for Fast Stylization. | |
Применяет Instance Normalization к 5D входным данным (мини-пачка 3D входов с дополнительным каналом) как описано в статье Instance Normalization: The Missing Ingredient for Fast Stylization. | |
Модуль | |
Модуль | |
Модуль | |
Применяет Layer Normalization к мини-пачке входных данных, как описано в статье Layer Normalization | |
Применяет локальную нормализацию реакции к входному сигналу, состоящему из нескольких входных плоскостей, где каналы занимают второе измерение. |
Рекуррентные слои
Базовый класс для модулей RNN (RNN, LSTM, GRU). | |
Применяет многослойный RNN Elman с нелинейностью или к последовательности входных данных. | |
Применяет многослойный рекуррентный модуль с долговременной краткосрочной памятью (LSTM) к последовательности входных данных. | |
Применяет многослойный рекуррентный модуль GRU к последовательности входных данных. | |
Ячейка RNN Elman с нелинейностью tanh или ReLU. | |
Ячейка с долговременной краткосрочной памятью (LSTM). | |
Ячейка рекуррентного модуля GRU. |
Слои Transformer
Модель Transformer. | |
TransformerEncoder — это стек из N кодирующих слоёв. | |
TransformerDecoder — это стек из N декодирующих слоёв. | |
TransformerEncoderLayer состоит из блока самовнимания и блока прямого отображения. | |
TransformerDecoderLayer состоит из блока самовнимания, блока многоголового внимания и блока прямого отображения. |
Линейные слои
Плейсхолдер-оператор тождества, не зависящий от аргументов. | |
Применяет линейное преобразование к входным данным: | |
Применяет билинейное преобразование к входным данным: | |
Модуль |
Слои Dropout
Во время обучения случайным образом обнуляет некоторые элементы тензора входных данных с вероятностью | |
Случайно обнуляет целые каналы (канал — это 1D карта признаков, например, -й канал -й выборки в входном батче — это 1D тензор ). | |
Случайно обнуляет целые каналы (канал — это 2D карта признаков, например, -й канал -й выборки в входном батче — это 2D тензор ). | |
Случайно обнуляет целые каналы (канал — это 3D карта признаков, например, -й канал -й выборки в входном батче — это 3D тензор ). | |
Применяет Alpha Dropout к входным данным. | |
Случайно маскирует целые каналы (канал — это карта признаков, например). |
Разреженные слои
Простая таблица поиска, которая хранит эмбеддинги фиксированного словаря и размера. | |
Вычисляет суммы или средние значения «мешков» эмбеддингов без создания промежуточных эмбеддингов. |
Функции расстояния
Возвращает косинусное сходство между и , вычисленное по | |
Вычисляет попарное расстояние между входными векторами или между столбцами входных матриц. |
Функции потерь
Создает критерий, который измеряет среднюю абсолютную ошибку (MAE) между каждым элементом в входном и целевом . | |
Создаёт критерий, который измеряет среднюю квадратическую ошибку (квадратную L2 норму) между каждым элементом в входном и целевом . | |
Этот критерий вычисляет кросс-энтропийную потерю между входными логарифмическими вероятностями и целевым значением. | |
Потеря алгоритма связи временных классификаций. | |
Потеря отрицательного логарифма вероятности. | |
Потеря отрицательного логарифма вероятности с пуассоновским распределением целевого значения. | |
Потеря отрицательного логарифма вероятности для нормального распределения. | |
Потеря расхождения Кульбака-Лейблера. | |
Создаёт критерий, который измеряет бинарную кросс-энтропию между целевым значением и вероятностями на входе: | |
Эта потеря объединяет | |
Создаёт критерий, который измеряет потерю, заданную входными значениями , , двумя 1D мини-пачками или 0D | |
Измеряет потерю, заданную входным тензором и тензором меток (содержащим 1 или -1). | |
Создаёт критерий, который оптимизирует многоклассовую многоклассовую потерю Хинджа (потеря на основе отступа) между входом (2D мини-пачка | |
Создаёт критерий, который использует квадратную часть, если абсолютная элементная ошибка меньше дельта, и дельта-масштабированную L1 часть в противном случае. | |
Создаёт критерий, который использует квадратную часть, если абсолютная элементная ошибка меньше бета, и L1 часть в противном случае. | |
Создаёт критерий, который оптимизирует логистическую потерю бинарной классификации между входным тензором и целевым тензором (содержащим 1 или -1). | |
Создаёт критерий, который оптимизирует потерю одного против всех для многозначных меток на основе максимальной энтропии между входом и целевым значением размера . | |
Создаёт критерий, который измеряет потерю, заданную входными тензорами , и меткой | |
Создаёт критерий, который оптимизирует многоклассовую классификационную потерю Хинджа (потеря на основе отступа) между входом (2D мини-пачка |
Создаёт критерий, который измеряет потерю триплета, заданного входными тензорами , , и отступом со значением больше . | |
Создаёт критерий, который измеряет потерю триплета, заданного входными тензорами , и (соответственно, якорь, позитивный и негативный примеры) и неотрицательной действительной функцией ("функция расстояния"), используемой для вычисления отношения между якорем и позитивным примером ("позитивное расстояние") и якорем и негативным примером ("негативное расстояние"). |
Слои Vision
Переупорядочивает элементы в тензоре формы в тензор формы , где r – коэффициент увеличения. | |
Обращает операцию | |
Увеличивает масштаб заданных многоканальных данных 1D (временных), 2D (пространственных) или 3D (объёмных). | |
Применяет 2D ближайшего соседа увеличение масштаба к входному сигналу, состоящему из нескольких входных каналов. | |
Применяет 2D билинейное увеличение масштаба к входному сигналу, состоящему из нескольких входных каналов. |
Слои Shuffle
Делит каналы в тензоре формы на g групп и переупорядочивает их как , сохраняя исходную форму тензора. |
Слои DataParallel (много-GPU, распределённые)
Реализует параллельность данных на уровне модуля. | |
Реализует распределённую параллельность данных, основанную на пакете |
Утилиты
Из модуля 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
| Принимая на вход класс модуля и аргументы / ключевые аргументы, создает экземпляр модуля без инициализации параметров / буферов. |
Параметризации реализованы с помощью новой функциональности параметризации в torch.nn.utils.parameterize.register_parametrization().
Применяет ортогональную или унитарную параметризацию к матрице или набору матриц. | |
Применяет спектральное нормирование к параметру в заданном модуле. |
Утилитарные функции для параметризации тензоров в существующих модулях. Обратите внимание, что эти функции могут использоваться для параметризации заданного параметра или буфера, используя определенную функцию, отображающую пространство входных данных в параметризованное пространство. Это не параметризации, которые преобразуют объект в параметр. Для получения дополнительной информации о том, как реализовать собственные параметризации, см. учебник по параметризациям.
Добавляет параметризацию к тензору в модуле. | |
Удаляет параметризации тензора в модуле. | |
Контекстный менеджер, который включает систему кэширования внутри параметризаций, зарегистрированных с | |
Возвращает |
Последовательный контейнер, который хранит и управляет |
Утилитарные функции для вызова данного модуля в бессостоятельном режиме.
Выполняет функциональный вызов модуля, заменяя параметры и буферы модуля предоставленными. |
Утилитарные функции в других модулях
Содержит данные и список | |
Упаковывает тензор, содержащий заполненные последовательности переменной длины. | |
Заполняет упакованную партию последовательностей переменной длины. | |
Заполняет список тензоров переменной длины с помощью | |
Упаковывает список тензоров переменной длины | |
Распаковывает PackedSequence в список тензоров переменной длины | |
Распаковывает заполненный тензор в список тензоров переменной длины |
Разворачивает непрерывный диапазон измерений в тензор. | |
Разворачивает тензор, расширяя его до нужной формы. |
Квантованные функции
Квантование относится к методам вычислений и хранения тензоров с меньшим числом бит, чем с плавающей точкой. PyTorch поддерживает как квантование по тензору, так и по каналу с асимметричным линейным квантованием. Чтобы узнать больше о том, как использовать квантованные функции в PyTorch, обратитесь к документации по квантованию.
Инициализация ленивых модулей
Mixin для модулей, которые лениво инициализируют параметры, также известные как «ленивые модули». |
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/nn.html