models/PaddleNLP/PaddleTextGEN/seq2seq/该项目是官方的翻译模型项目,我想问的是该模型中,计算的ppl值,在训练集,验证集和测试集都有计算的这个值,这是perplexity的计算吗?但跟网上查到的perplexity公式不一样。该代码中是这样计算的ppl = np.exp(total_loss / word_count),所以这里的ppl是什么度量的计算呢?请求解惑,感谢。具体相关代码如下:
def eval(data, epoch_id=0):
eval_data_iter = reader.get_data_iter(data, batch_size, mode='eval')
total_loss = 0.0
word_count = 0.0
for batch_id, batch in enumerate(eval_data_iter):
input_data_feed, word_num = prepare_input(
batch, epoch_id, with_lr=False)
fetch_outs = exe.run(inference_program,
feed=input_data_feed,
fetch_list=[loss.name],
use_program_cache=False)
cost_train = np.array(fetch_outs[0])
total_loss += cost_train * batch_size
word_count += word_num
ppl = np.exp(total_loss / word_count)
return ppl
收藏
点赞
0
个赞
请登录后评论
TOP
切换版块
这是自然语言处理的问题吗?