请问在训练过程如何在开发集上做自定义的评价
Created by: fseasy
背景
目前在做句子打分(排序)模型,希望在开发集上算一个NDCG分数。
当前paddle在训练过程中做评价的方法
我查看了一些示例代码,感觉基本是这么做的:
trainer = paddle.trainer.SGD(
cost=model.cost,
parameters=params,
update_equation=optimizer,
**extra_layers=model.eval** # define extra_layers
)
# devel
result = trainer.test(
reader=paddle.batch(
data_generator.train_reader(test_file_list),
batch_size=conf.batch_size),
feeding=feeding)
print("Test %d, Cost %f, Eval %s" %
(event.pass_id, result.cost,
**result.metrics** # 评价值
))
其中 extra_layers 定义里是paddle.v2.evaluators 预先定义的值
问题
NDCG的评价不在evaluators中,也就是需要做自定义的评价,该如何做呢? 此外,trainner.test 是否能够给出更加详细的API解释呢