Velpus Captiosus
Well-Known Coder
Hello everyone.Only part of the Node class is relevant to my question:
However
Python:
import math
class Node:
prevNodes = []
b = 0.5
def __init__(self,value,nextNode):
self.value = 0
if nextNode is not None:
self.nextNode = nextNode
self.nextNode.prevNodes.append(self)
def changeB(self,error):
if self.b+error>0:
self.b+=error
else:
print("Weight cannot be < 0")
def printVal(self):
print(self.value,"\n")
def changeVal(self,inp):
self.value = inp
self.nextNode.value += float(self.value)* self.b
class Network:
def __init__(self,nodes):
self.nodes = nodes
def calcOutput(self):
finalNode = self.nodes
while finalNode.nextNode is not None:
finalNode = self.nodes.nextNode
return 1-pow(math.e,-(finalNode.value))
def returnOutputNode(self):
finalNode = self.nodes
while finalNode.nextNode is not None:
finalNode = finalNode.nextNode
return finalNode
def digitize(self,val):
if val<0.5:
val = 0
else:
val = 1
return val
def correctBiases(self,node,error):
print(node.value)
node.changeB(error)
if len(node.prevNodes) != 0:
for nd in node.prevNodes:
self.correctBiases(nd,error)
def checkAnswer(self):
y = self.digitize(self.calcOutput())
print(y,"\n")
x = float(input("What is the correct output?\n"))
if x != y:
z = (self.digitize(self.calcOutput())-x)/10
print(z,'\n')
self.correctBiases(self.returnOutputNode(),z)
y1 = Node(0,None)
x1 = Node(0,y1)
print(len(y1.prevNodes))
print(len(x1.prevNodes))
However
len(x1.prevNodes)
returns a value of 1 and I don't understand how this is possible. When I programmed the class I thought it would have returned 0. And I want it to be 0 because x1 doesn't have any previous nodes? Any ways I can fix this?
Last edited by a moderator: