我有一个无限的 while 循环,但我不明白为什么

I have an infinite while loop but i don't see why

我正在尝试学习如何从头开始编写非常简单的神经网络代码。但是我看不到正确的培训。每当我 运行 我的 while 循环时,它就会陷入无限循环。 这是我的代码:

#inputs and targets
x1=[1,0,1]
x2=[0,1,0]
x3=[0,0,1]
inputs=[x1,x2,x3]
targets=[1,0,0,1]

#parameters
np.random.seed(1)
w1 = np.random.random_sample(size = 3)
w1=w1.tolist()
alpha=0.1
itera=0

#activation function
def purelin(z):
    return z

#network
def red(i,w1):
    n=[]
    for inp in i:
        a=inp*w1[inputs.index(i)]
        n.append(a)
    n=sum(n) #sumar inputs*weights (caso sin bias)
    a=purelin(n)
    return a

#forward propagation
def forw(inputs):
    outputs=[]
    for i in inputs:
        x=red(i,w1)
        outputs.append(x)
    return outputs

#error
def error(targets, outputs):
    e=[]
    zip_object = zip(targets, outputs)
    for i, j in zip_object:
        e.append(i-j)
    return e 


#backpropagation 
def back(e):
    w1_=[]
    zip_object2 = zip(w1, e)
    for i, j in zip_object2:
        w1_.append(i-alpha*j)
    return w1_

#training
while itera<1000:
    outputs=forw(inputs)
    e=error(targets,outputs)
    w1=back(e)
    itera=+1

我知道我还有很多工作要做,但我想解决这个问题,这样我就可以调整我的代码并获得结果。谢谢!!

这只是一个小的打字错误。在循环结束时,您不是将 itera 递增 1,而是将其设置为 +1 。 只需将最后一行更改为 itera += 1 它应该可以正常工作。

注意:有时打印变量可能会有帮助,即使我总是建议您正确调试代码。