Tensorflow 如何解码seq2seq的输出?

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

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,embedded\u size]
对于每个logit(或:每个单词的激活),它们采用了激活值最高的索引

对于argmax:请查看本页上的numpy示例:

因此,输出的作用是:

  • 每个单词的长度(bucket的长度)
    • 获取嵌入大小的最大激活
您应该查看结果输出数组的形状。您将看到,因为批处理大小为1,所以一切正常


如果这对你有帮助,请告诉我

多谢各位。但我的问题主要是关于为什么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])