-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathXOR.py
More file actions
33 lines (24 loc) · 1.04 KB
/
XOR.py
File metadata and controls
33 lines (24 loc) · 1.04 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
import sys
# path must be changed to locate modules outside of directory
sys.path.append("../../")
from Network import Network
from utils.TrainingExample import TrainingExample
from utils.costFunctions import squaredError, squaredErrorPrime
from utils.activationFunctions import sigmoid, sigmoidPrime
examples = [
TrainingExample([[1],[0]],[[1]]),
TrainingExample([[1],[1]],[[0]]),
TrainingExample([[0],[0]],[[0]]),
TrainingExample([[0],[1]],[[1]]),
]
if __name__ == "__main__":
N = Network(.5,2,activation=sigmoid,activationDerivative=sigmoidPrime,costFunction=squaredError,costDerivative=squaredErrorPrime)
N.addLayer(2,sigmoid,sigmoidPrime)
N.addLayer(1,sigmoid,sigmoidPrime)
print("before training predicitons: ")
for i in examples:
print("input: {} prediction: {}".format(i.input.flatten(),N.forwardPropagate(i.input)))
N.fit(examples,100000)
print("\nafter training predicitons: ")
for i in examples:
print("input: {} prediction: {}".format(i.input.flatten(),N.forwardPropagate(i.input)))