Tensorflow 如何解码seq2seq的输出?
Tensorflow translate.py示例的代码让我感到困惑。复制的代码是:Tensorflow 如何解码seq2seq的输出?,tensorflow,neural-network,nlp,deep-learning,machine-translation,Tensorflow,Neural Network,Nlp,Deep Learning,Machine Translation,Tensorflow translate.py示例的代码让我感到困惑。复制的代码是: # This is a greedy decoder - outputs are just argmaxes of output_logits. outputs = [int(np.argmax(logit, axis=1)) for logit in output_logits] 为什么argmax工作 output\u logits的形状是[bucket\u length,batch\u size
# This is a greedy decoder - outputs are just argmaxes of output_logits.
outputs = [int(np.argmax(logit, axis=1)) for logit in output_logits]
为什么argmax
工作
output\u logits
的形状是[bucket\u length,batch\u size,embedded\u size]
对于每个logit(或:每个单词的激活),它们采用了激活值最高的索引
对于argmax:请查看本页上的numpy示例:
因此,输出的作用是:
- 每个单词的长度(bucket的长度)
- 获取嵌入大小的最大激活
如果这对你有帮助,请告诉我 多谢各位。但我的问题主要是关于为什么argmax会产生翻译后的单词id。numpy示例有帮助吗?谢谢。我知道argmax是什么意思。那么这回答了你的问题吗?或者你不清楚你是如何得到输出的?不,模型想要翻译。所以我的问题是如何将输出逻辑转换为词汇表中的单词id。
a = array([[0, 1, 2],
[3, 4, 5]])
>>> np.argmax(a)
5
>>> np.argmax(a, axis=0)
array([1, 1, 1])
>>> np.argmax(a, axis=1)
array([2, 2])