以最简单的方式解释 Torch 中 nn.LookupTable 的用法

我目前在处理与 Torch 中的 nn.LookupTable 模块相关的索引错误。我敢肯定我可以解决它,但我认为我的问题的一部分与我实际上不理解 nn.LookupTable 的概念有关。

特别是,我试图理解在 Element-Research 的 RNN 包上下文中使用 nn.LookupTable 实际上是做什么的。请参阅来自 此处 的示例

    -- 这个示例演示了嵌套 AbstractRecurrent 实例的能力。
-- 在这种情况下,FastLSTM 嵌套在 Recurrence 中。
require 'rnn'

-- 超参数
batchSize = 8
rho = 5 -- 序列长度
hiddenSize = 7
nIndex = 10
lr = 0.1

-- Recurrence.recurrentModule
local rm = nn.Sequential()
  :add(nn.ParallelTable()
      :add(nn.LookupTable(nIndex, hiddenSize))
      :add(nn.Linear(hiddenSize, hiddenSize)))
   :add(nn.CAddTable())
   :add(nn.Sigmoid())
  :add(nn.FastLSTM(hiddenSize,hiddenSize)) -- 一个 AbstractRecurrent 实例
  :add(nn.Linear(hiddenSize,hiddenSize))
  :add(nn.Sigmoid())

请有人可以从概念上解释一下 Torch 中的 LookupTable 是做什么的以及它为什么很重要吗?如果您能解释一下它在这个示例中是如何使用的,那么就额外加分。

编辑:我也阅读了 这个 教程,虽然我大部分时间都明白正在发生什么,但我完全不明白为什么这里会使用 LookupTable 会有用。

点赞