Closed heyd7fc closed 2 years ago
Hi,
请查看下面的代码。 异常判定的规则是如果被mask的token的实际值没有被模型预测到(前n个candidates),那么就认定为异常
具体是这个代码if token not in torch.argsort(-masked_output[i])[:self.num_candidates]:
def detect_logkey_anomaly(self, masked_output, masked_label):
num_undetected_tokens = 0
output_maskes = []
for i, token in enumerate(masked_label):
# output_maskes.append(torch.argsort(-masked_output[i])[:30].cpu().numpy()) # extract top 30 candidates for mask labels
if token not in torch.argsort(-masked_output[i])[:self.num_candidates]:
num_undetected_tokens += 1
return num_undetected_tokens, [output_maskes, masked_label.cpu().numpy()]
你好, 抱歉这么久回复你,如果我想输出原始的异常日志应该怎么做呢?现在的输出是mask掉的日志键,可能不太直观。
你好,
在对测试数据进行预测的时候,我如何才能直接输出预测的日志?
感谢