我有一个模仿本教程中生成的编码器解码器网络: https ://towardsdatascience.com/how-to-implement-seq2seq-lstm-model-in-keras-shortcutnlp-6f355f3e5639
然而,解码器 LSTM 的输出将是 0 到 1 之间的数字。然而,在本教程中,单词被标记为整数。如何使用此标记化将此输出在 0 和 1 之间转换回单词?
另一种选择可能是使用一个热编码标记化,但您肯定仍然需要舍入输出以将浮动输出转换为整数?
我有一个模仿本教程中生成的编码器解码器网络: https ://towardsdatascience.com/how-to-implement-seq2seq-lstm-model-in-keras-shortcutnlp-6f355f3e5639
然而,解码器 LSTM 的输出将是 0 到 1 之间的数字。然而,在本教程中,单词被标记为整数。如何使用此标记化将此输出在 0 和 1 之间转换回单词?
另一种选择可能是使用一个热编码标记化,但您肯定仍然需要舍入输出以将浮动输出转换为整数?
您引用的教程使用了 15000 个标记的词汇表。它为每个样本输出 10 个标记的序列,这样 10 个单词中的每一个都是 15000 个浮点数的向量。您可以将这些视为一种概率,理想情况下,这 15000 个浮点数的总和加起来为 1,最高分告诉您选择了哪个令牌。因此,在输入时,每个令牌都被转换为大小为 15000 的 1 个热编码向量,在输出时,您有一个 softmax 节点,该节点输出每个令牌的分数,其中最高分数为您提供所选令牌。
用于tf.math.argmax()
查找最佳单词的索引。然后从你的词汇表中提取单词