def evaluate(model, data_loader, args): model.eval() meter = Meter() with torch.no_grad(): for batch in data_loader: batch = tuple(t.to(args.device) for t in batch) _, items = calc_loss(model, batch) meter.add(*items) return meter.average(), meter.print_str(False)
def evaluate_kcBert(model, data_loader, args): model.eval() meter = Meter() with torch.no_grad(): for batch in data_loader: batch = tuple(t.to(args.device) for t in batch) noise_input_ids, clean_input_ids, noise_mask, clean_mask = batch outputs = model(noise_input_ids, labels=clean_input_ids, attention_mask=noise_mask) loss = outputs[0] bsz = clean_input_ids.size(0) items = [loss.data.item(), bsz, clean_mask.sum().item()] meter.add(*items) return meter.average(), meter.print_str(False)