【问题标题】:Error when increasing the number of hidden layers of DNNRegressor增加 DNNRegressor 的隐藏层数时出错
【发布时间】:2017-12-29 22:00:04
【问题描述】:

成功使用以下代码构建了一个具有 2 层的 DNNRegressor

# Parameters
num_epochs = 1000
STEPS = 10000
BATCH_SIZE = 80

#Deep Neural Network Regressor 
feature_column1 = learn.infer_real_valued_columns_from_input(train_x)
regressor = learn.DNNRegressor(feature_columns = feature_column1, hidden_units= [25,25], model_dir = './output')
regressor.fit(train_x, train_y, max_steps= STEPS, batch_size= BATCH_SIZE)
Ypred = regressor.predict_scores(test_x, as_iterable=True)
Ypred = np.asarray(list(Ypred))
rmse = np.sqrt(((Ypred - test_y) ** 2).mean(axis=0))
print("Root mean square Error: %.3f" %rmse)

但是,当我尝试通过将 regressor 更改为 regressor = learn.DNNRegressor(feature_columns = feature_column1, hidden_units= [25,25,25], model_dir = './output') 将隐藏层从 2 增加到 3 时,我不断收到以下错误消息:

InvalidArgumentError:shape_and_slice 规范 [25] 中的形状不 匹配检查点中存储的形状:[50] [[Node: save/RestoreV2 = 恢复V2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"](_recv_save/Const_0, save/RestoreV2/tensor_names, save/RestoreV2/shape_and_slices)]]

我尝试用谷歌搜索这个错误,但没有看到有人遇到同样的问题。谁能帮我解决这个问题?我不明白为什么会出现这个错误;p

【问题讨论】:

  • 您是否尝试过删除检查点并重试?
  • 删除model_dir的内容并再次运行。
  • @E_net4 和 vijay m:非常感谢!它终于对我有用了!!
  • 我添加了一个带有建议修复的答案。

标签: python deep-learning regression recurrent-neural-network


【解决方案1】:

您的脚本似乎会在启动时自动加载以前保存的模型。当您修改网络时,持久化模型不再与其兼容。

清除保存的模型输出,或者使用另一个文件夹来保存模型的输出,可以解决这个问题。

【讨论】:

  • @E_net64:非常感谢!!我明白了:)
猜你喜欢
  • 2012-10-12
  • 2014-04-20
  • 1970-01-01
  • 1970-01-01
  • 2019-01-27
  • 2020-02-02
  • 1970-01-01
  • 1970-01-01
  • 2019-02-13
相关资源
最近更新 更多