import numpy as np
''''''
class per(object):
def __init__(self,input_num,step):
self.step = step
self.weights = [0.0 for _ in range(input_num)]
self.bias = 0.0
''''''
def train(self,input_vecs,labels,iteration_num,rate):
for i in range(iteration_num):
samples=zip(input_vecs,labels)
for (input_vec,label) in samples:
output=self.operation(input_vec)
self.updata(input_vec,output,label,rate)
''''''
def andStep(x):
if x>0:
return 1
else:
return 0
def trainPer():
p=per(2,andStep)
input_vecs,labels=getTrainData()
p.train(input_vecs,labels,100,0.1)
return p
''''''
if __name__=='__main__':
x1 = [1,0]
input_vecs=np.random.choice(x1,2)
labels=np.random.choice(x1)
train_per=trainPer()
print(train_per)
print(train_per.predict([1,1]))
print(train_per.predict([1,0]))
print(train_per.predict([0,1]))
print(train_per.predict([0,0]))
weight: [0.1, 0.2], bias: -0.200000
1
0
0
0