gpt4 book ai didi

python - LSTM num_units 大小,即hidden_​​layer 的大小

转载 作者:行者123 更新时间:2023-12-01 06:31:36 31 4
gpt4 key购买 nike

我经常看到自然语言处理任务使用LSTM,其方式是首先使用嵌入层,然后使用LSTM嵌入大小的层,即如果一个单词由 1x300 向量表示,则使用LSTM(300)

例如:

model = Sequential()
model.add(Embedding(vocabulary, hidden_size, input_length=num_steps))
model.add(LSTM(hidden_size, return_sequences=True))

这样做有什么特殊原因吗?想要更好地表达含义吗?

最佳答案

我认为这没有任何特殊的原因/需要,坦率地说,我自己还没有看到很多这样的情况(即使用 LSTM 隐藏单元 == 嵌入大小)。这样做的唯一影响是每个嵌入向量元素都有一个存储单元(我认为这不是必需的)。

话虽如此,我想我可能会提到一些额外的东西。也就是说,在此设置中使用嵌入层是有原因的。事实上,这是一个很好的理由。让我们考虑一下这两个选项,

  1. 使用一种热编码进行单词表示
  2. 使用嵌入进行单词表示

选项 2 比选项 1 有几个优点。

  • 使用嵌入层时,输入的维度会小得多(例如 300 而不是 50000)
  • 您为模型提供了灵 active ,以学习实际上适合您要解决的任务的单词表示形式。换句话说,您不会限制单词的表示在训练过程中保持不变。
  • 如果您使用预训练的词嵌入层来初始化嵌入层,那就更好了。您正在将单词语义带入您正在解决的任务中。这总是有助于更好地解决任务。这类似于要求一个不理解单词含义的幼儿做一些与文本相关的事情(例如,以正确的语法顺序排​​列单词)与要求一个 3 岁的 child 做同样的任务。他们最终可能都会这么做。但我们会做得更快更好。

关于python - LSTM num_units 大小,即hidden_​​layer 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59883794/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com