我得到“ NameError:未定义”,即使它在上一个单元格中定义

时间:2019-08-28 17:40:08

标签: python python-3.x jupyter-notebook anaconda jupyter

因此,我正在学习机器学习算法,而且即使在上一个单元格中定义了这个NameError: name ' ' is not defined,我也不知道为什么得到这个numpy

>

在下面的代码中,如您所见,我已经定义了一些名称并导入了In[1],当我尝试运行最后一个单元格(In [1])时,出现名称错误,并且导入问题。

如果我从定义它们的先前单元格中复制定义的名称,然后将其粘贴到发生错误的单元格NameError Traceback (most recent call last) <ipython-input-1-698c7414b772> in <module> ----> 1 noise = np.random.uniform(-1,1,(obs,1)) 2 targets = 2*xs - 3*zs + 5 + noise 3 init_range = 0.1 4 weights = np.random.uniform(-init_range,init_range, size=(2,1)) 5 biases = np.random.uniform(-init_range,init_range,size=1) NameError: name 'np' is not defined上,则它可以正常工作,但没有任何意义;为什么我必须在每个单元格上重新定义名称?导入库时会发生完全相同的事情,我必须在每个单元格上执行它,否则它将无法工作。这可能是一个非常基本的问题,但是我开始学习,这些简单的细节使我感到恐惧。 错误消息:In[4]: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D In[6]: noise = np.random.uniform(-1,1,(obs,1)) targets = 2*xs - 3*zs + 5 + noise print(targets.shape) In[7]: import numpy as np init_range = 0.1 weights = np.random.uniform(-init_range,init_range, size=(2,1)) biases = np.random.uniform(-init_range,init_range,size=1) print(weights) print(biases) In[9]: learning_rate = 0.02 In[1]: for i in range (100): outputs = np.dot(inputs,weights) + biases deltas = outputs - targets loss = np.sum(deltas ** 2) / 2 / obs print(loss) deltas_scaled= deltas/obs weights = weights - learning_rate * np.dot(inputs.T,deltas_scaled) biases = biases - learning_rate * np.sum(deltas_scaled) 代码:

{{1}}

我希望该算法能显示出随我定义的学习率而降低的值,但确实如此,但是让我重新定义了所有内容之后。我希望我能解释清楚。

0 个答案:

没有答案