File size: 639 Bytes
08a6545 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
from numba import njit, prange
@njit(fastmath=True, cache=True)
def score_mask_numba_fast(pred, expected, ground, pixels_on_lines):
h, w = pred.shape
pp = 0
po = 0
for y in prange(h):
for x in range(w):
p_val = pred[y, x]
g_val = ground[y, x]
e_val = expected[y, x]
p = (p_val != 0) & (g_val != 0)
e = e_val != 0
pp += p
po += p & e
if pp == 0:
return 0.0
pr = pp - po
total = pixels_on_lines + pp - po
if total == 0 or pr * 10 > total * 9:
return 0.0
return po / (pixels_on_lines + 1e-8) |