增加DNNRegressor的隐藏层数时出错

时间:2017-07-24 10:43:17

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

成功使用以下代码构建一个包含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] [[节点:保存/恢复V2 =   RestoreV2 [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

1 个答案:

答案 0 :(得分:1)

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

清除保存的模型输出,或使用模型输出的其他文件夹,解决了这个问题。