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.
- Тип возвращаемого значения:
- Форма:
-
- Вход: 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