我正在为我的项目调整Tensorflow tutorial for sequence to sequence modeling。具体来说,我的代码基于翻译.py. 在
本教程每隔n个训练步骤计算一次dev集合上的困惑。我想在dev集合上计算BLEU分数。在
我面临的问题是,在创建模型时,需要指定它是否只向前。纵观代码,似乎是这样的(在训练时发生),在每一步网络都不会计算输入序列的最终输出,而是会计算梯度。当它不只是向前(如本教程后面的解码函数中所述),它将应用循环函数,该函数将输出反馈到RNN的输入中,从而生成输出序列。但是,它不计算梯度。据我所知,你可以为训练(即梯度)或测试(即对其进行完全推理)构建一个模型。在
因为我想计算BLEU分数,所以我需要一些由模型生成的序列,它对应于dev集合中的输入序列。由于模型是如何构造的,我需要两种类型的模型(只向前和不向前)。但是,尝试这样做(即使使用新的会话和新的变量范围),我似乎无法加载用于推理的模型,同时还要创建一个用于培训的模型。如果没有新的session/variable作用域,我会得到关于重复变量的错误。如果有一种方法可以将模型从“不只是向前”切换到“只向前”。在
在这种情况下,是否有任何方法来执行推理(运行完整的RNN),而我也在培训它的范围内?在
目前没有回答
相关问题 更多 >
编程相关推荐