[s2s] round bleu, rouge to 4 digits (#6704)

This commit is contained in:
Sam Shleifer
2020-08-25 00:33:11 -04:00
committed by GitHub
parent b6512d2357
commit 0344428f79
4 changed files with 12 additions and 12 deletions

View File

@@ -20,7 +20,7 @@ try:
from .utils import (
any_requires_grad,
assert_all_frozen,
calculate_bleu_score,
calculate_bleu,
freeze_params,
pickle_load,
use_task_specific_params,
@@ -32,7 +32,7 @@ except ImportError:
from utils import (
any_requires_grad,
assert_all_frozen,
calculate_bleu_score,
calculate_bleu,
freeze_params,
pickle_load,
use_task_specific_params,
@@ -261,7 +261,7 @@ class BartTranslationDistiller(BartSummarizationDistiller):
self.decoder_start_token_id = self.tokenizer.lang_code_to_id[hparams.tgt_lang]
def calc_generative_metrics(self, preds, target) -> dict:
return calculate_bleu_score(preds, target)
return calculate_bleu(preds, target)
@staticmethod
def add_model_specific_args(parser, root_dir):

View File

@@ -23,7 +23,7 @@ try:
Seq2SeqDataset,
TranslationDataset,
assert_all_frozen,
calculate_bleu_score,
calculate_bleu,
calculate_rouge,
flatten_list,
freeze_params,
@@ -42,7 +42,7 @@ except ImportError:
Seq2SeqDataset,
TranslationDataset,
assert_all_frozen,
calculate_bleu_score,
calculate_bleu,
calculate_rouge,
flatten_list,
freeze_params,
@@ -325,7 +325,7 @@ class TranslationModule(SummarizationModule):
self.dataset_kwargs["tgt_lang"] = hparams.tgt_lang
def calc_generative_metrics(self, preds, target) -> dict:
return calculate_bleu_score(preds, target)
return calculate_bleu(preds, target)
def main(args, model=None) -> SummarizationModule:

View File

@@ -9,9 +9,9 @@ from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
try:
from .utils import calculate_bleu_score, calculate_rouge, trim_batch, use_task_specific_params
from .utils import calculate_bleu, calculate_rouge, trim_batch, use_task_specific_params
except ImportError:
from utils import calculate_bleu_score, calculate_rouge, trim_batch, use_task_specific_params
from utils import calculate_bleu, calculate_rouge, trim_batch, use_task_specific_params
DEFAULT_DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
@@ -103,7 +103,7 @@ def run_generate():
if args.reference_path is None:
return
# Compute scores
score_fn = calculate_bleu_score if "translation" in args.task else calculate_rouge
score_fn = calculate_bleu if "translation" in args.task else calculate_rouge
output_lns = [x.rstrip() for x in open(args.save_path).readlines()]
reference_lns = [x.rstrip() for x in open(args.reference_path).readlines()][: len(output_lns)]
scores: dict = score_fn(output_lns, reference_lns)

View File

@@ -57,9 +57,9 @@ def lmap(f: Callable, x: Iterable) -> List:
return list(map(f, x))
def calculate_bleu_score(output_lns, refs_lns, **kwargs) -> dict:
def calculate_bleu(output_lns, refs_lns, **kwargs) -> dict:
"""Uses sacrebleu's corpus_bleu implementation."""
return {"bleu": corpus_bleu(output_lns, [refs_lns], **kwargs).score}
return {"bleu": round(corpus_bleu(output_lns, [refs_lns], **kwargs).score, 4)}
def trim_batch(
@@ -271,7 +271,7 @@ def calculate_rouge(output_lns: List[str], reference_lns: List[str], use_stemmer
aggregator.add_scores(scores)
result = aggregator.aggregate()
return {k: v.mid.fmeasure * 100 for k, v in result.items()}
return {k: round(v.mid.fmeasure * 100, 4) for k, v in result.items()}
def freeze_params(model: nn.Module):