我目前正在研究GNMT(Google神经机器翻译),以便将非英语句子翻译成英语句子。我想看看在每个检查点都对模型进行了多少训练,但是原始代码仅提供了困惑(math.exp(float(loss))。
因此,我想计算每个检查点的BLEU分数,就像困惑一样。但是,我不知道如何提取由GNMT模型生成的结果句子。
我认为答案类似于下面的代码,但是下面的代码假设给定句子只是一个句子(而我将给出几个句子,dev set,作为输入)
outputs = [int(np.argmax(logit, axis=1)) for logit in output_logits]
if data_utils.EOS_ID in outputs:
outputs=outputs[:outputs.index(data_utils.EOS_ID)]
return "".join([self.rev_fr_vocab[output] for output in outputs]
感谢您提供的任何帮助!