forked from fizyr/keras-retinanet
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_losses.py
33 lines (26 loc) · 820 Bytes
/
test_losses.py
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
26
27
28
29
30
31
32
33
import keras_retinanet.losses
import keras
import numpy as np
import pytest
def test_smooth_l1():
regression = np.array([
[
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
]
], dtype=keras.backend.floatx())
regression = keras.backend.variable(regression)
regression_target = np.array([
[
[0, 0, 0, 1, 1],
[0, 0, 1, 0, 1],
[0, 0, 0.05, 0, 1],
[0, 0, 1, 0, 0],
]
], dtype=keras.backend.floatx())
regression_target = keras.backend.variable(regression_target)
loss = keras_retinanet.losses.smooth_l1()(regression_target, regression)
loss = keras.backend.eval(loss)
assert loss == pytest.approx((((1 - 0.5 / 9) * 2 + (0.5 * 9 * 0.05 ** 2)) / 3))