Skip to content

Instantly share code, notes, and snippets.

@kdoodoo
Created October 1, 2016 23:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kdoodoo/2b162045e9876a5badb1db74b5f7b28a to your computer and use it in GitHub Desktop.
Save kdoodoo/2b162045e9876a5badb1db74b5f7b28a to your computer and use it in GitHub Desktop.
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