def getMetric(pred,target):
tp = ((pred + target) == torch.full((1, pred.size()[0]), 2)).sum()
preMul = (pred*0.6 + target*0.4)
return (tp - (preMul == torch.full((1, pred.size()[0]), 0.6)).sum()) / (tp + (preMul == torch.full((1, pred.size()[0]), 0.4)).sum())
Какая-то ерунда. Вероятность не может обозначать факт.
Тогда можно подумать насчёт масштабирования векторов следующим образом:
- вероятности заменятся на +1, когда p>=0.5, иначе на -1;
- бинарный результат заменяется на -1, когда 0.
Почему функция в потоке не успеет доработать до конца? Вы выгружаете dll из процесса?
Вот график производной, т.е. когда она в + бесконечность уходит, просто максимально большое число (например 9999999) возвращать?