我成功使用以下代码构建一个包含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
答案 0 :(得分:1)
您的脚本似乎在启动时自动加载以前保存的模型。修改网络后,持久模型不再与其兼容。
清除保存的模型输出,或使用模型输出的其他文件夹,解决了这个问题。