-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_basis.py
76 lines (63 loc) · 1.95 KB
/
test_basis.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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import numpy as np
from mlcvlab.nn.basis import linear, linear_grad, radial, radial_grad
RESULTS = {}
def test_linear():
x = np.array([
[10.],
[20.],
[30.]], dtype='f')
W = np.array([
[1., 2., 3.],
[-1., 0., 2.],], dtype='f')
linear_ = linear(x, W)
#print("linear : ", linear_)
exp_linear_ = np.array([
[140.],
[ 50.]],dtype='f')
RESULTS["TEST_LINEAR_1"] = np.allclose(linear_.round(4), exp_linear_)
def test_linear_grad():
x = np.array([
[10.],
[20.],
[30.]], dtype='f')
linear_grad_ = linear_grad(x)
# print("linear_grad_ : ", linear_grad_)
exp_linear_grad_ = np.array([
[10.],
[20.],
[30.]],dtype='f')
RESULTS["TEST_LINEAR_GRAD_1"] = np.allclose(linear_grad_.round(4), exp_linear_grad_)
def test_radial():
y = np.array([
[10., 20, 30.]], dtype='f')
y_hat = np.array([
[10., 21., 29.]], dtype='f')
radial_ = radial(y, y_hat)
exp_radial_ = 2.0
print("radial : ", radial_)
RESULTS["TEST_RADIAL_1"] = np.allclose(radial_.round(4), exp_radial_)
def test_radial_grad():
x = np.array([
[10.],
[20.],
[30.]], dtype='f')
W = np.array([
[1.],
[-1.],
[0.]], dtype='f')
loss_grad_y = 140
radial_grad_ = radial_grad(loss_grad_y, x, W)
#print("radial_grad_ : ", radial_grad_)
exp_radial_grad_ = np.array(
[[-2520., -5880., -8400.]], dtype='f')
RESULTS["TEST_RADIAL_GRAD_1"] = np.allclose(radial_grad_.round(4), exp_radial_grad_)
if __name__ == "__main__":
test_linear()
test_linear_grad()
test_radial()
test_radial_grad()
result = True
for k,v in RESULTS.items():
print(f"{k.rjust(30,' ')} : {str(v).ljust(15,' ')}")
result = result and v
print(f"\n\nTEST_BASIS : {result}")