PaddleTextGEN项目seq2seq下的
新版小萱萱 发布于2020-01 浏览:1726 回复:1
0
收藏

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
个赞
共1条回复 最后由饭小团回复于2020-07
#2饭小团回复于2020-07

这是自然语言处理的问题吗?

0
TOP
切换版块