【问题标题】:How to solve " NameError: name 'model' is not defined " error?如何解决“NameError: name 'model' is not defined”错误?
【发布时间】:2019-08-31 09:17:02
【问题描述】:

在尝试预测输出时,我遇到了错误NameError: name 'model' is not defined。如何解决这个问题。

%%time
# Lstm
model = Sequential()
model.add(LSTM(data_dim, input_shape=(95,data_dim), activation='relu'))
model.add(Dense(data_dim))
model.compile(loss='mse', optimizer='adam')
model.fit(X_train, y_train, epochs=10, batch_size=96)
model.summary()

上述模型训练良好。在尝试model.predict(X_test1) 时,我遇到了上述问题。

【问题讨论】:

  • 删除%%time 并再次运行单元格。您现在将在全局上下文中拥有变量 model。从 Jupyter 5 开始,时间魔法函数在主上下文之外执行。
  • 谢谢理查德。这样可行。你能把答案写在下面吗?
  • @RichardNemeth 正如 OP 建议的那样,请将此作为答案发布,以便可以接受并在这里供将来参考(cmets 很容易被删除)

标签: python tensorflow neural-network lstm


【解决方案1】:

问题在于魔术函数%%time。在 Jupyter 中最新版本的 IPython 中,以 time 魔术函数作为标头运行单元格会在全局上下文之外运行单元格。 %%timeit 也是如此。

实际上这意味着 %%time 单元格中定义的所有新变量都不存在于主上下文中,包括您的 model 变量,这就是您收到 NameError 异常的原因,因为解释器找不到变量命名为model

从您的单元格中删除 %%time 行就可以了。

【讨论】:

    猜你喜欢
    • 2021-12-15
    • 2020-11-07
    • 2022-11-27
    • 1970-01-01
    相关资源
    最近更新 更多