在进行ocr识别模型预测的时候,发现预测的结果是正确的,但是概率值是负数:
net_out = net(img) #torch.Size([70, 1, 41])
logit, preds = net_out.max(2) #41是类别 需要对类别取最大值
preds = preds.transpose(1, 0).contiguous().view(-1) #torch.Size([70]) 70是序列,每个序列找到对应的类别了
lab2str,char_logit = decode_out(preds,logit, args.characters) #最终输出lab2str代表字符连起来的字符串,char_logit代表每个字符的概率值
于是添加了softmax之后,概率值恢复正常:
net_out = net(img)
######## 添加softmax ########
net_out = torch.softmax(net_out, dim=2)
logit, preds = net_out.max(2)
preds = preds.transpose(1, 0).contiguous().view(-1)
lab2str,char_logit = decode_out(preds,logit, args.characters)