Spec-Zone.ru › PyTorch 2.14

torch.nn.functional.embedding

torch.nn.functional.embedding(input, weight, padding_idx=None, max_norm=None, norm_type=2.0, scale_grad_by_freq=False, sparse=False) [исходный код]

Создаёт простую таблицу поиска, которая извлекает эмбеддинги из словаря фиксированного размера.

Этот модуль часто используется для получения векторных представлений слов с помощью индексов. На вход модулю передаются список индексов и матрица эмбеддингов, а на выходе возвращаются соответствующие векторные представления слов.

Подробнее см. в torch.nn.Embedding.

Примечание

Обратите внимание, что аналитические градиенты этой функции по элементам weight в строке, указанной padding_idx, могут отличаться от численных градиентов.

Примечание

Обратите внимание, что :class:`torch.nn.Embedding отличается от этой функции тем, что при создании инициализирует строку weight, указанную padding_idx, нулями.

Параметры:
  • input (LongTensor) – Тензор, содержащий индексы в матрице эмбеддингов
  • weight (Tensor) – Матрица эмбеддингов (должна быть двумерной), число строк в которой равно максимальному возможному индексу + 1, а число столбцов — размерности эмбеддинга
  • padding_idx (int, optional) – Если задан, элементы в padding_idx не участвуют в вычислении градиента; поэтому вектор эмбеддинга в padding_idx не обновляется во время обучения, то есть остаётся неизменным вектором заполнения.
  • max_norm (float, optional) – Если задан, каждый вектор эмбеддинга с нормой, превышающей max_norm, перенормируется так, чтобы его норма стала равна max_norm. Примечание: weight будет изменён на месте.
  • norm_type (float, optional) – Значение p для вычисления p-нормы при использовании параметра max_norm. По умолчанию — 2.
  • scale_grad_by_freq (bool, optional) – Если задан, градиенты масштабируются обратно пропорционально частоте слов в мини-пакете. По умолчанию — False.
  • sparse (bool, optional) – Если задано значение True, градиент по weight будет разреженным тензором. Подробнее о разреженных градиентах см. в разделе «Примечания» для torch.nn.Embedding.
Тип возвращаемого значения:

Tensor

Форма:
  • Вход: LongTensor произвольной формы, содержащий извлекаемые индексы
  • Вес: матрица эмбеддингов с числами с плавающей точкой формы (V, embedding_dim), где V = максимальный индекс + 1, а embedding_dim = размерность эмбеддинга
  • Выход: (*, embedding_dim), где * — форма входных данных

Примеры:

>>> # a batch of 2 samples of 4 indices each
>>> input = torch.tensor([[1, 2, 4, 5], [4, 3, 2, 9]])
>>> # an embedding matrix containing 10 tensors of size 3
>>> embedding_matrix = torch.rand(10, 3)
>>> F.embedding(input, embedding_matrix)
tensor([[[ 0.8490,  0.9625,  0.6753],
         [ 0.9666,  0.7761,  0.6108],
         [ 0.6246,  0.9751,  0.3618],
         [ 0.4161,  0.2419,  0.7383]],

        [[ 0.6246,  0.9751,  0.3618],
         [ 0.0237,  0.7794,  0.0528],
         [ 0.9666,  0.7761,  0.6108],
         [ 0.3385,  0.8612,  0.1867]]])

>>> # example with padding_idx
>>> weights = torch.rand(10, 3)
>>> weights[0, :].zero_()
>>> embedding_matrix = weights
>>> input = torch.tensor([[0, 2, 0, 5]])
>>> F.embedding(input, embedding_matrix, padding_idx=0)
tensor([[[ 0.0000,  0.0000,  0.0000],
         [ 0.5609,  0.5384,  0.8720],
         [ 0.0000,  0.0000,  0.0000],
         [ 0.6262,  0.2438,  0.7471]]])

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

Spec-Zone.ru

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