-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathand_gate_grad_desc.py
More file actions
43 lines (32 loc) · 1.06 KB
/
and_gate_grad_desc.py
File metadata and controls
43 lines (32 loc) · 1.06 KB
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
import numpy as np
x_train = np.array([[0.,0.], [0.,1.], [1.,0.], [1.,1.]])
y_train = np.array([[0.], [0.], [0.], [1.]])
w = np.random.randn(2)
b = np.random.randn(1)
num_rate = len(x_train)
def prediction(x):
return np.sum(w * x) + b
def cost(predict, y):
res = (predict - y)**2/2
# print res
return res
learn_rate = 0.01
error_rate = 0.
print "Prediksi awal "
print "0 0 = ",prediction(np.array([0.,0.]))
print "0 1 = ",prediction(np.array([0.,1.]))
print "1 0 = ",prediction(np.array([1.,0.]))
print "1 1 = ",prediction(np.array([1.,1.]))
# training process
for _ in range(10000) :
for x, y in zip(x_train, y_train):
pred = prediction(x)
for k in range(len(w)):
w[k] = w[k] - (learn_rate * (pred[0] - y[0]) * x[k])
b = b - (learn_rate * (pred[0] - y[0]))
#print(cost(prediction(x[0]), y[0]))
print "\nPrediksi setelah training "
print "0 0 = ",prediction(np.array([0.,0.]))
print "0 1 = ",prediction(np.array([0.,1.]))
print "1 0 = ",prediction(np.array([1.,0.]))
print "1 1 = ",prediction(np.array([1.,1.]))