gpt4 book ai didi

python - LSTM 内的 Tensorflow 序列到序列 LSTM(嵌套)

转载 作者:行者123 更新时间:2023-11-28 21:46:29 25 4
gpt4 key购买 nike

我想构建一个带有特殊词嵌入的 LSTM,但我对它的工作原理有一些疑问。

您可能知道,一些 LSTM 对字符进行操作,因此它是字符输入,字符输出。我想做同样的事情,通过对单词的抽象来学习使用嵌套的 LSTM 在单词上进行稳健的嵌入,以抵抗轻微的字符级错误。

因此,一个微型 LSTM 将在单词的每个字母上展开,然后这将创建单词的嵌入。然后,句子中的每个嵌入单词将作为输入馈送到更高级别的 LSTM,后者将在每个时间步在单词级别上运行,而不是在字符上运行。

问题:- 我再也找不到谈论那个的研究论文了。如果你知道我在说什么,我想为我想做的事情命名。- 是否已经存在一些 TensorFlow 开源代码?- 否则,您对如何实现有想法吗?神经网络的输出可能更难处理,因为我们需要撤消词嵌入以对具有输出嵌套 LSTM 的字符进行训练。整个事情应该作为一个单元训练一次(工作流程:LSTM 字符输入,LSTM 单词,LSTM 字符输出)。

我猜 rnn_cell.MultiRNNCell 会将 LSTM 堆叠在一起,而不是嵌套它们。

否则您会建议将嵌入(输入和输出)训练为主要 LSTM 之外的自动编码器吗?

最佳答案

我不知道你指的是哪篇论文。

但这里有一个关于如何在 TensorFlow 中实现类似的东西的想法:

您可以创建 2 LSTMCells .

如果你想支持每个单词的可变字符数和每个序列的可变单词数,你可以复制并调整 dynamic_rnn 的代码(参见 rnn.py)您可以创建一个嵌套的 while 循环,而不是单个 while 循环。对字符进行操作的内部调用第一个 LSTMCell 并在每个单词后重置状态。外层对嵌入词(内层循环的输出)进行操作并调用第二个 LSTMCell。

通常,您是否应该单独训练嵌入取决于您有多少数据可用。如果您没有大量数据训练,则单独嵌入(在可能不同的数据集上)可能有意义。如果你负担得起并且你的模型训练得很好,那么训练嵌入和你的整个网络会有好处,因为字符的含义可以是特定于任务的。

但我想知道这种方法与先进行拼写更正然后使用标准词嵌入相比如何。然后你可以使用一些standard embedding tools和一个带有 dynamic_rnn 的 LSTMCell。

关于python - LSTM 内的 Tensorflow 序列到序列 LSTM(嵌套),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37900366/

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