【发布时间】:2020-09-29 14:44:40
【问题描述】:
import numpy as np
from scipy import optimize as opt
import time
def grad_d():
weight = [0, 0]
learnrate = 0.01
tol = 1.e-5
itmax = 1000
for i in range(itmax):
deltaweight = - learnrate * opt.rosen_der(weight)
weight = weight + deltaweight
if abs(deltaweight) < learnrate:
break
return weight, i
print('Weight: ', weight)
print('Iterations: ', i)
运行代码后,我收到错误消息:
“文件“c:/Users/Desfios 5/Desktop/Python/gradientdescent.py”,第 19 行,在 打印('重量:',重量) NameError: name 'weight' 没有定义
我是 Python 新手,我不明白为什么变量“权重”显然是在 grad_d() 下定义的,但它却是未定义的。
【问题讨论】:
-
在定义
weight之前调用print(weight)
标签: python undefined nameerror