INNER CODE UNIT · Python
evaluate
mlwithme/BertWithPretrained · Tasks/TaskForChineseNER.py:161
def evaluate(config, val_iter, model, data_loader):
model.eval()
real_true, real_pred = [], []
show = True
with torch.no_grad():
for idx, (sen, token_ids, labels) in enumerate(val_iter):
token_ids = token_ids.to(config.device)
labels = labels.to(config.device)
padding_mask = (token_ids == data_loader.PAD_IDX).transpose(0, 1)
logits = model(input_ids=token_ids, # [src_len, batch_size]
attention_mask=padding_mask, # [batch_size,src_len]
token_type_ids=None,
position_ids=None,
labels=None) # [src_len, batch_size]
# logits :[src_len, batch_size, num_labels]
if show:
show_result(sen[:10], logits[:, :10], token_ids[:, :10], config.entities)
show = False