Created
October 1, 2016 23:52
-
-
Save kdoodoo/2b162045e9876a5badb1db74b5f7b28a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import numpy as np | |
import math as mt | |
import matplotlib.pyplot as plt | |
x = raw_input("Enter a OR, AND, XOR: ") | |
input1 = [] | |
input2 = [] | |
xaxis = [] | |
# output1 = [] | |
# output2 = [] | |
sumoutput = [] | |
learnconst = 0.01 | |
expectout1 = 1 | |
expectout2 = -1 | |
weight1 = np.random.random_sample() | |
weight2 = np.random.random_sample() | |
ranges = 400 | |
if x == "OR": | |
answer1= raw_input("Type 1(T) or -1(F): " +"\n") | |
input1.append(answer1) | |
answer2= raw_input("Type 1(T) or -1(F): " +"\n") | |
input2.append(answer2) | |
input11 = np.array(input1,dtype=float) | |
input22 = np.array(input2,dtype=float) | |
if input11[0] == 1 and input22[0] == 1: | |
output1 = (input11[0] * weight1) | |
output2 = (input22[0] * weight2) | |
sumout = output1 + output2 | |
for i in range(0,ranges): | |
error1 = expectout1 - sumout | |
error2 = expectout1 - sumout | |
weightdelta1 = error1 * input11 | |
weightdelta2 = error2 * input22 | |
weight1 = weight1 + weightdelta1 * learnconst | |
weight2 = weight2 + weightdelta2 * learnconst | |
output1 = weight1 * input11 | |
output2 = weight2 * input22 | |
sumout = output1 + output2 | |
sumoutput.append(sumout) | |
xaxis.append(i) | |
# print error1, error2, output1, output2, sumoutput[i], weight1, weight2 | |
if input11[0] == 1 and input22[0] == -1: | |
output1 = (input11[0] * weight1) | |
output2 = (input22[0] * weight2) | |
sumout = output1 + output2 | |
for i in range(0,ranges): | |
error1 = expectout1 - sumout | |
error2 = expectout1 - sumout | |
weightdelta1 = error1 * input11 | |
weightdelta2 = error2 * input22 | |
weight1 = weight1 + weightdelta1 * learnconst | |
weight2 = weight2 + weightdelta2 * learnconst | |
output1 = weight1 * input11 | |
output2 = weight2 * input22 | |
sumout = output1 + output2 | |
sumoutput.append(sumout) | |
xaxis.append(i) | |
# print error1, error2, output1, output2, sumoutput[i], weight1, weight2 | |
if input11[0] == -1 and input22[0] == 1: | |
output1 = (input11[0] * weight1) | |
output2 = (input22[0] * weight2) | |
sumout = output1 + output2 | |
for i in range(0,ranges): | |
error1 = expectout1 - sumout | |
error2 = expectout1 - sumout | |
weightdelta1 = error1 * input11 | |
weightdelta2 = error2 * input22 | |
weight1 = weight1 + weightdelta1 * learnconst | |
weight2 = weight2 + weightdelta2 * learnconst | |
output1 = weight1 * input11 | |
output2 = weight2 * input22 | |
sumout = output1 + output2 | |
sumoutput.append(sumout) | |
xaxis.append(i) | |
# print error1, error2, output1, output2, sumoutput[i], weight1, weight2 | |
if input11[0] == -1 and input22[0] == -1: | |
output1 = (input11[0] * weight1) | |
output2 = (input22[0] * weight2) | |
sumout = output1 + output2 | |
for i in range(0,ranges): | |
error1 = expectout2 - sumout | |
error2 = expectout2 - sumout | |
weightdelta1 = error1 * input11 | |
weightdelta2 = error2 * input22 | |
weight1 = weight1 + weightdelta1 * learnconst | |
weight2 = weight2 + weightdelta2 * learnconst | |
output1 = weight1 * input11 | |
output2 = weight2 * input22 | |
sumout = output1 + output2 | |
sumoutput.append(sumout) | |
xaxis.append(i) | |
# print error1, error2, output1, output2, sumoutput[i], weight1, weight2 | |
plt.plot( xaxis, sumoutput ) | |
plt.show() | |
if x == "AND": | |
answer1= raw_input("Type 1(T) or -1(F): " +"\n") | |
input1.append(answer1) | |
answer2= raw_input("Type 1(T) or -1(F): " +"\n") | |
input2.append(answer2) | |
input11 = np.array(input1,dtype=float) | |
input22 = np.array(input2,dtype=float) | |
if input11[0] == 1 and input22[0] == 1: | |
output1 = (input11[0] * weight1) | |
output2 = (input22[0] * weight2) | |
sumout = output1 + output2 | |
for i in range(0,ranges): | |
error1 = expectout1 - sumout | |
error2 = expectout1 - sumout | |
weightdelta1 = error1 * input11 | |
weightdelta2 = error2 * input22 | |
weight1 = weight1 + weightdelta1 * learnconst | |
weight2 = weight2 + weightdelta2 * learnconst | |
output1 = weight1 * input11 | |
output2 = weight2 * input22 | |
sumout = output1 + output2 | |
sumoutput.append(sumout) | |
xaxis.append(i) | |
# print error1, error2, output1, output2, sumoutput[i], weight1, weight2 | |
if input11[0] == -1 and input22[0] == 1: | |
output1 = (input11[0] * weight1) | |
output2 = (input22[0] * weight2) | |
sumout = output1 + output2 | |
for i in range(0,ranges): | |
error1 = expectout2 - sumout | |
error2 = expectout2 - sumout | |
weightdelta1 = error1 * input11 | |
weightdelta2 = error2 * input22 | |
weight1 = weight1 + weightdelta1 * learnconst | |
weight2 = weight2 + weightdelta2 * learnconst | |
output1 = weight1 * input11 | |
output2 = weight2 * input22 | |
sumout = output1 + output2 | |
sumoutput.append(sumout) | |
xaxis.append(i) | |
# print error1, error2, output1, output2, sumoutput[i], weight1, weight2 | |
if input11[0] == 1 and input22[0] == -1: | |
output1 = (input11[0] * weight1) | |
output2 = (input22[0] * weight2) | |
sumout = output1 + output2 | |
for i in range(0,ranges): | |
error1 = expectout2 - sumout | |
error2 = expectout2 - sumout | |
weightdelta1 = error1 * input11 | |
weightdelta2 = error2 * input22 | |
weight1 = weight1 + weightdelta1 * learnconst | |
weight2 = weight2 + weightdelta2 * learnconst | |
output1 = weight1 * input11 | |
output2 = weight2 * input22 | |
sumout = output1 + output2 | |
sumoutput.append(sumout) | |
xaxis.append(i) | |
# print error1, error2, output1, output2, sumoutput[i], weight1, weight2 | |
if input11[0] == -1 and input22[0] == -1: | |
output1 = (input11[0] * weight1) | |
output2 = (input22[0] * weight2) | |
sumout = output1 + output2 | |
for i in range(0,ranges): | |
error1 = expectout2 - sumout | |
error2 = expectout2 - sumout | |
weightdelta1 = error1 * input11 | |
weightdelta2 = error2 * input22 | |
weight1 = weight1 + weightdelta1 * learnconst | |
weight2 = weight2 + weightdelta2 * learnconst | |
output1 = weight1 * input11 | |
output2 = weight2 * input22 | |
sumout = output1 + output2 | |
sumoutput.append(sumout) | |
xaxis.append(i) | |
# print error1, error2, output1, output2, sumoutput[i], weight1, weight2 | |
plt.plot( xaxis, sumoutput ) | |
plt.show() | |
if x == "XOR": | |
answer1= raw_input("Type 1(T) or -1(F): " +"\n") | |
input1.append(answer1) | |
answer2= raw_input("Type 1(T) or -1(F): " +"\n") | |
input2.append(answer2) | |
input11 = np.array(input1,dtype=float) | |
input22 = np.array(input2,dtype=float) | |
if input11[0] == 1 and input22[0] == 1: | |
output1 = (input11[0] * weight1) | |
output2 = (input22[0] * weight2) | |
sumout = output1 + output2 | |
for i in range(0,ranges): | |
error1 = expectout2 - sumout | |
error2 = expectout2 - sumout | |
weightdelta1 = error1 * input11 | |
weightdelta2 = error2 * input22 | |
weight1 = weight1 + weightdelta1 * learnconst | |
weight2 = weight2 + weightdelta2 * learnconst | |
output1 = weight1 * input11 | |
output2 = weight2 * input22 | |
sumout = output1 + output2 | |
sumoutput.append(sumout) | |
xaxis.append(i) | |
# print error1, error2, output1, output2, sumoutput[i], weight1, weight2 | |
if input11[0] == -1 and input22[0] == 1: | |
output1 = (input11[0] * weight1) | |
output2 = (input22[0] * weight2) | |
sumout = output1 + output2 | |
for i in range(0,ranges): | |
error1 = expectout1 - sumout | |
error2 = expectout1 - sumout | |
weightdelta1 = error1 * input11 | |
weightdelta2 = error2 * input22 | |
weight1 = weight1 + weightdelta1 * learnconst | |
weight2 = weight2 + weightdelta2 * learnconst | |
output1 = weight1 * input11 | |
output2 = weight2 * input22 | |
sumout = output1 + output2 | |
sumoutput.append(sumout) | |
xaxis.append(i) | |
# print error1, error2, output1, output2, sumoutput[i], weight1, weight2 | |
if input11[0] == 1 and input22[0] == -1: | |
output1 = (input11[0] * weight1) | |
output2 = (input22[0] * weight2) | |
sumout = output1 + output2 | |
for i in range(0,ranges): | |
error1 = expectout1 - sumout | |
error2 = expectout1 - sumout | |
weightdelta1 = error1 * input11 | |
weightdelta2 = error2 * input22 | |
weight1 = weight1 + weightdelta1 * learnconst | |
weight2 = weight2 + weightdelta2 * learnconst | |
output1 = weight1 * input11 | |
output2 = weight2 * input22 | |
sumout = output1 + output2 | |
sumoutput.append(sumout) | |
xaxis.append(i) | |
# print error1, error2, output1, output2, sumoutput[i], weight1, weight2 | |
if input11[0] == -1 and input22[0] == -1: | |
output1 = (input11[0] * weight1) | |
output2 = (input22[0] * weight2) | |
sumout = output1 + output2 | |
for i in range(0,ranges): | |
error1 = expectout2 - sumout | |
error2 = expectout2 - sumout | |
weightdelta1 = error1 * input11 | |
weightdelta2 = error2 * input22 | |
weight1 = weight1 + weightdelta1 * learnconst | |
weight2 = weight2 + weightdelta2 * learnconst | |
output1 = weight1 * input11 | |
output2 = weight2 * input22 | |
sumout = output1 + output2 | |
sumoutput.append(sumout) | |
xaxis.append(i) | |
# print error1, error2, output1, output2, sumoutput[i], weight1, weight2 | |
plt.plot( xaxis, sumoutput ) | |
plt.show() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment