在通过tf.esitimator.DNNClassifier
重新加载数据后,我难以将数据提供给tf.contrib.predictor.from_saved_model
。非常感谢您的帮助。
我找到了this和this链接,但出现错误。下面是我的实现:
保存模型:
feature_spec = tf.feature_column.make_parse_example_spec(feat_cols)
export_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(feature_spec)
tuned_model.export_savedmodel('./model_dir/saved_models/', export_fn)
这将成功保存以下信息的模型:
INFO:tensorflow:调用model_fn。 INFO:tensorflow:完成调用 model_fn。 INFO:tensorflow:导出中包含用于分类的签名: ['serving_default','分类'] INFO:tensorflow:签名 包含在出口中以进行回归:['回归'] INFO:tensorflow:导出中包含Predict的签名:['predict'] INFO:tensorflow:Train的导出中包含的签名:无 INFO:tensorflow:导出的评估中包含的签名:无 INFO:tensorflow:还原参数 /nimble/kdalal/model_dir/model.ckpt-28917 INFO:tensorflow:添加了资产 图。 INFO:tensorflow:无资产可写入。 INFO:tensorflow:SavedModel写入: ./model_dir/saved_models/temp-b'1556819228'/saved_model.pb
重新加载预测:
predict_prod = tf.contrib.predictor.from_saved_model('./model_dir/saved_models/1556819228')
predict_prod(dict(X_test))
我收到以下错误:
ValueError:在input_dict中获得了意外的键:{'DOW','JOB_FUNCTION', 'ACC_SIZE','answered_20D','MatchType','CONTACT_STATE','SEASONS', 'named_20D','st_cb_ans_20D','JOB_ROLE','st_cb_drawn_20D', 'CALL_BLOCKS'}预期为:{'inputs'}
我的X_test
是我要获取预测的数据框。
[编辑]:
我的输入dict
如下所示:
{'JOB_ROLE': 714859 Manager-Level
714860 Manager-Level
714861 Manager-Level
714862 Manager-Level
714863 Director-Level
Name: JOB_ROLE, dtype: object,
'JOB_FUNCTION': 714859 Information Technology
714860 Information Technology
714861 Information Technology
714862 Information Technology
714863 Information Technology
Name: JOB_FUNCTION, dtype: object,
'MatchType': 714859 Work Phone
714860 Work Phone
714861 Work Phone
714862 Work Phone
714863 Account Main Phone
Name: MatchType, dtype: object,
'CALL_BLOCKS': 714859 17_18
714860 17_18
714861 17_18
714862 17_18
714863 17_18
Name: CALL_BLOCKS, dtype: object,
'ACC_SIZE': 714859 StartUps
714860 StartUps
714861 Small
714862 StartUps
714863 Small
Name: ACC_SIZE, dtype: object,
'CONTACT_STATE': 714859 WA
714860 CA
714861 CA
714862 CA
714863 CA
Name: CONTACT_STATE, dtype: object,
'SEASONS': 714859 Spring
714860 Spring
714861 Spring
714862 Spring
714863 Spring
Name: SEASONS, dtype: object,
'DOW': 714859 Monday
714860 Monday
714861 Monday
714862 Monday
714863 Monday
Name: DOW, dtype: object,
'called_20D': 714859 0.038760
714860 0.077519
714861 0.217054
714862 0.046512
714863 0.038760
Name: called_20D, dtype: float64,
'answered_20D': 714859 0.000000
714860 0.086957
714861 0.043478
714862 0.000000
714863 0.130435
Name: answered_20D, dtype: float64,
'st_cb_called_20D': 714859 0.050233
714860 0.282496
714861 0.282496
714862 0.282496
714863 0.282496
Name: st_cb_called_20D, dtype: float64,
'st_cb_ans_20D': 714859 0.059761
714860 0.314741
714861 0.314741
714862 0.314741
714863 0.314741
Name: st_cb_ans_20D, dtype: float64}
我是tf
的初学者,我不知道如何将数据帧传递到模型,以便可以调用predcit
方法并获得预测。
我还应该将我的 输入数据 转换为其他dtype
吗?
答案 0 :(得分:0)
我找到了答案。请参阅link,以了解如何将数据输入到导入的estimator
模型中。
答案 1 :(得分:0)
ValueError:无法为张量为'(?,)'的张量'input_example_tensor:0'输入形状(75116,12)的值
关于这个问题,您的模型似乎可以预测一次1项
您只能提供一个像{'inputs':X_test.values [0]}
这样的项目。您可以更改模型以预测一堆物品
祝你好运