NameError: name 'x' is not defined for a gradient descent function already defined. self.function() also not working
NameError: name 'x' is not defined for a gradient descent function already defined. self.function() also not working
我定义了一个梯度下降函数,它工作得很好,所有参数也包括在内。这是下面相同的代码。
def gradient_descent(init_m,init_c,x,t,learning_rate,iterations,error_threshold):
m=init_m
c=init_c
error_values=list()
mc_values=list()
for i in range(iterations):
e=error(m,x,c,t)
if e<error_threshold:
print('Error less than the threshold. Stopping gradient descent')
break
error_values.append(e)
m,c=update(m,x,c,t,learning_rate)
mc_values.append((m,c))
return m,c,error_values,mc_values
但是当我移动到下一个单元格并尝试 运行 这个函数时,它会生成一个回溯。我什至尝试使用 self.gradient_descent 但效果不佳。这是下面的代码。
init_m=0.9
init_c=0
learning_rate=0.001
iterations=250
error_threshold=0.001
m,c,error_values,mc_values= gradient_descent(init_m,init_c,x,t,learning_rate,iterations,error_threshold)
如果有人可以提供一些意见,那将是巨大的帮助。我得到这个输出。
NameError Traceback (most recent call last)
<ipython-input-18-ea467e4f9ae1> in <module>()
4 iterations=250
5 error_threshold=0.001
----> 6 m,c,error_values,mc_values=
gradient_descent(init_m,init_c,x,t,learning_rate,iterations,error_threshold)
NameError: name 'x' is not defined
错误消息说明了一切。这是因为你没有定义x。在调用 gradient_descent 函数之前,您必须为 x 分配一个值。实际上你也应该为 t.
做同样的事情
当我们在后续单元格中再次定义函数时,这会起作用。变量是先前定义的。
我定义了一个梯度下降函数,它工作得很好,所有参数也包括在内。这是下面相同的代码。
def gradient_descent(init_m,init_c,x,t,learning_rate,iterations,error_threshold):
m=init_m
c=init_c
error_values=list()
mc_values=list()
for i in range(iterations):
e=error(m,x,c,t)
if e<error_threshold:
print('Error less than the threshold. Stopping gradient descent')
break
error_values.append(e)
m,c=update(m,x,c,t,learning_rate)
mc_values.append((m,c))
return m,c,error_values,mc_values
但是当我移动到下一个单元格并尝试 运行 这个函数时,它会生成一个回溯。我什至尝试使用 self.gradient_descent 但效果不佳。这是下面的代码。
init_m=0.9
init_c=0
learning_rate=0.001
iterations=250
error_threshold=0.001
m,c,error_values,mc_values= gradient_descent(init_m,init_c,x,t,learning_rate,iterations,error_threshold)
如果有人可以提供一些意见,那将是巨大的帮助。我得到这个输出。
NameError Traceback (most recent call last)
<ipython-input-18-ea467e4f9ae1> in <module>()
4 iterations=250
5 error_threshold=0.001
----> 6 m,c,error_values,mc_values=
gradient_descent(init_m,init_c,x,t,learning_rate,iterations,error_threshold)
NameError: name 'x' is not defined
错误消息说明了一切。这是因为你没有定义x。在调用 gradient_descent 函数之前,您必须为 x 分配一个值。实际上你也应该为 t.
做同样的事情当我们在后续单元格中再次定义函数时,这会起作用。变量是先前定义的。