[ create a new paste ] login | about

Link: http://codepad.org/JSe5O9WC    [ raw code | output | fork ]

Python, pasted on Feb 6:
# Learning rate: Lower = slower, Higher = less precise
rate = 0.1
# Weights
inWeight = [0.1,0.1]
# Start neuron with no stimuli
inNeuron = [0.0, 0.0]
# Learning table (AND gate) [inpu1, input2, output]
test = [[0.0, 0.0, 0.0], [0.0, 1.0, 0.0], [1.0, 0.0, 0.0], [1.0, 1.0, 1.0]]
# Calculate response from neural input
def outNeuron(midThresh):
	global inNeuron, inWeight
	s = inNeuron[0]*inWeight[0] + inNeuron[1]*inWeight[1]
	if s > midThresh:
		return 1
	else:
		return 0
# Display results of test
def display(out, real):
		if out == real:
			print "Result is " + str(out) + ". It's right."
		else:
			print str(out) + " should be " + str(real)
counter = 0
while counter < 45:
	# Loop through each lesson in the learning table
	for i in range(len(test)):
		# Stimulate neurons with test input
		inNeuron[0] = test[i][0]
		inNeuron[1] = test[i][1]
		# Adjust weight of neuron #1
		# based on feedback, then display
		out = outNeuron(2)
		inWeight[0] += rate*(test[i][2]-out)
		print inWeight[0]
		display(out, test[i][2])
		# Adjust weight of neuron #2
		# based on feedback, then display
		out = outNeuron(2)
		inWeight[1] += rate*(test[i][2]-out)
		print inWeight[1]
		display(out, test[i][2])
		# Delay
		counter += 1


Output:
0.1
Result is 0. It's right.
0.1
Result is 0. It's right.
0.1
Result is 0. It's right.
0.1
Result is 0. It's right.
0.1
Result is 0. It's right.
0.1
Result is 0. It's right.
0.2
0 should be 1.0
0.2
0 should be 1.0
0.2
Result is 0. It's right.
0.2
Result is 0. It's right.
0.2
Result is 0. It's right.
0.2
Result is 0. It's right.
0.2
Result is 0. It's right.
0.2
Result is 0. It's right.
0.3
0 should be 1.0
0.3
0 should be 1.0
0.3
Result is 0. It's right.
0.3
Result is 0. It's right.
0.3
Result is 0. It's right.
0.3
Result is 0. It's right.
0.3
Result is 0. It's right.
0.3
Result is 0. It's right.
0.4
0 should be 1.0
0.4
0 should be 1.0
0.4
Result is 0. It's right.
0.4
Result is 0. It's right.
0.4
Result is 0. It's right.
0.4
Result is 0. It's right.
0.4
Result is 0. It's right.
0.4
Result is 0. It's right.
0.5
0 should be 1.0
0.5
0 should be 1.0
0.5
Result is 0. It's right.
0.5
Result is 0. It's right.
0.5
Result is 0. It's right.
0.5
Result is 0. It's right.
0.5
Result is 0. It's right.
0.5
Result is 0. It's right.
0.6
0 should be 1.0
0.6
0 should be 1.0
0.6
Result is 0. It's right.
0.6
Result is 0. It's right.
0.6
Result is 0. It's right.
0.6
Result is 0. It's right.
0.6
Result is 0. It's right.
0.6
Result is 0. It's right.
0.7
0 should be 1.0
0.7
0 should be 1.0
0.7
Result is 0. It's right.
0.7
Result is 0. It's right.
0.7
Result is 0. It's right.
0.7
Result is 0. It's right.
0.7
Result is 0. It's right.
0.7
Result is 0. It's right.
0.8
0 should be 1.0
0.8
0 should be 1.0
0.8
Result is 0. It's right.
0.8
Result is 0. It's right.
0.8
Result is 0. It's right.
0.8
Result is 0. It's right.
0.8
Result is 0. It's right.
0.8
Result is 0. It's right.
0.9
0 should be 1.0
0.9
0 should be 1.0
0.9
Result is 0. It's right.
0.9
Result is 0. It's right.
0.9
Result is 0. It's right.
0.9
Result is 0. It's right.
0.9
Result is 0. It's right.
0.9
Result is 0. It's right.
1.0
0 should be 1.0
1.0
0 should be 1.0
1.0
Result is 0. It's right.
1.0
Result is 0. It's right.
1.0
Result is 0. It's right.
1.0
Result is 0. It's right.
1.0
Result is 0. It's right.
1.0
Result is 0. It's right.
1.1
0 should be 1.0
1.0
Result is 1. It's right.
1.1
Result is 0. It's right.
1.0
Result is 0. It's right.
1.1
Result is 0. It's right.
1.0
Result is 0. It's right.
1.1
Result is 0. It's right.
1.0
Result is 0. It's right.
1.1
Result is 1. It's right.
1.0
Result is 1. It's right.
1.1
Result is 0. It's right.
1.0
Result is 0. It's right.
1.1
Result is 0. It's right.
1.0
Result is 0. It's right.
1.1
Result is 0. It's right.
1.0
Result is 0. It's right.
1.1
Result is 1. It's right.
1.0
Result is 1. It's right.


Create a new paste based on this one


Comments: