【发布时间】:2019-10-27 04:49:53
【问题描述】:
我有一个 12 个单词的序列,我使用 12x256 矩阵(使用单词嵌入)表示。让我们将它们称为。我希望将此作为输入并输出一个 1x256 向量。但是我不想使用 (12x256) x 256 密集层。相反,我想使用 12 个嵌入的加权求和来创建输出嵌入
wi 是标量(因此存在权重共享)。
如何在 pytorch 中创建可训练的 wi?我是新手,只熟悉 nn.Linear 等标准模块。
【问题讨论】:
-
想了想,是不是用卷积的解决方案?怎么样? conv1d 还是 conv2d?
-
嵌入的加权总和是什么意思?嵌入点是根据它的索引获得适当的向量(就像你说的词嵌入)。您所描述的是一个简单的
[words, dimensionality]矩阵乘以[words]大小的向量(我假设也可以是[words, dimensionality])并沿零维求和。如果这就是你想要的,你可以在自定义torch.nn.Module的构造函数中创建wis,方法是在__init__内发出self.weights = torch.nn.Parameter(torch.randn(words, 1))(类似于答案描述的内容)。
标签: pytorch