举一个使用nn.Embedding的例子
时间: 2023-08-11 18:36:15 浏览: 79
ns by Example
好的,下面是一个使用nn.Embedding的例子:
```python
import torch
import torch.nn as nn
# 假设我们要将10个单词表示成5维的向量
vocab_size = 10
embedding_dim = 5
# 定义一个Embedding层
embedding = nn.Embedding(vocab_size, embedding_dim)
# 输入一个1维tensor,表示单词的序号
input_tensor = torch.LongTensor([1, 3, 5, 7, 9])
# 使用Embedding层将输入的序号转换成对应的向量
output_tensor = embedding(input_tensor)
# 打印输出的张量的形状和值
print(output_tensor.size())
print(output_tensor)
```
在这个例子中,我们首先定义了词汇表的大小为10,每个单词用一个5维的向量表示。然后,我们定义了一个Embedding层,输入的是单词的序号,输出的是对应的向量。接着,我们将[1, 3, 5, 7, 9]这个序号的列表作为输入,使用Embedding层将其转换为对应的向量。最后,我们打印输出的张量的形状和值。
运行程序后,我们可以看到输出的形状为(5, 5),表示有5个单词,每个单词用一个5维的向量表示。输出的值为一个5x5的矩阵,其中每一行表示一个单词的向量表示。
阅读全文