【发布时间】: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