微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将解码器LSTM的输出数据转换回字?

如何解决如何将解码器LSTM的输出数据转换回字?

我有一个编码器解码器网络,模仿了本教程中制作的网络: https://towardsdatascience.com/how-to-implement-seq2seq-lstm-model-in-keras-shortcutnlp-6f355f3e5639

但是,解码器LSTM的输出将是介于0和1之间的数字。但是,在本教程中,单词被标记为整数。如何使用此标记化将输出在0和1之间转换回单词?

另一种选择可能是使用一个热编码标记化,但是确定您仍然必须舍入输出以将浮动输出转换为整数吗?

解决方法

使用tf.math.argmax()查找最佳单词的索引。然后从您的词汇表中提取单词

,

您引用的教程使用15000个令牌的词汇表。它输出每个样本10个令牌的序列,以便10个单词中的每个单词都是15000个float的向量。您可以将其视为一种概率,这样理想情况下,这15000个浮点数的总和等于1,而最高分会告诉您选择了哪个令牌。因此,在输入时,每个令牌都将转换为1个大小为15000的热编码矢量,在输出时,您将有一个softmax节点,该节点为每个令牌输出一个分数,其中最高分数会为您提供选定的令牌。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。