在Tensorflow 1.3中导出和加载tf.contrib.estimator,以便在python中进行预测,而不使用Tensorflow服务
我正在使用tf.contrib.learn.dnnlinearcombinedregrator和宽深特征列。我使用输入函数将数据发送到此回归器进行训练。我有实特征和分类特征,因此我的深层特征列由带有嵌入的稀疏列和实值列组成。而我的线性列是实值列。经过训练后,我可以使用estimator.predict_scores()方法天真地访问经过训练的模型进行预测。然而,据我所知,这会从检查点文件中重新创建tensorflow图,这对于我预期的应用程序来说非常缓慢。然后,我尝试使用estimator.export_savedmodel(),以查看是否可以在应用程序中进行实际预测之前保存并加载图形。但是我被它卡住了。我面临以下问题:在Tensorflow 1.3中导出和加载tf.contrib.estimator,以便在python中进行预测,而不使用Tensorflow服务,python,tensorflow,Python,Tensorflow,我正在使用tf.contrib.learn.dnnlinearcombinedregrator和宽深特征列。我使用输入函数将数据发送到此回归器进行训练。我有实特征和分类特征,因此我的深层特征列由带有嵌入的稀疏列和实值列组成。而我的线性列是实值列。经过训练后,我可以使用estimator.predict_scores()方法天真地访问经过训练的模型进行预测。然而,据我所知,这会从检查点文件中重新创建tensorflow图,这对于我预期的应用程序来说非常缓慢。然后,我尝试使用estimator.ex
feature_spec = tf.feature_column.make_parse_example_spec(deep_feature_cols)
export_input_fn = tf.contrib.learn.utils.build_parsing_serving_input_fn(feature_spec)
servable_model_path = regressor.export_savedmodel(export_dir_base = servable_model_dir, serving_input_fn = export_input_fn, as_text= True)
from tensorflow.contrib import predictor
predict_fn = predictor.from_saved_model(servable_model_path)
predictions = predict_fn(get_input_fn(X, y, LABEL, num_epochs=1, shuffle=False))
AttributeError Traceback (most recent call last)
<ipython-input-15-128f4d1ba155> in <module>()
----> 1 predictions = predict_fn(get_input_fn(X, y, LABEL, num_epochs=1,
shuffle=False))
~\AppData\Local\Continuum\Anaconda3\envs\tensorflow\lib\site-
packages\tensorflow\contrib\predictor\predictor.py in __call__(self, input_dict)
63 """
64 # TODO(jamieas): make validation optional?
---> 65 input_keys = set(input_dict.keys())
66 expected_keys = set(self.feed_tensors.keys())
67 unexpected_keys = input_keys - expected_keys
AttributeError: 'function' object has no attribute 'keys'
AttributeError回溯(最近一次调用)
在()
---->1预测=预测\u fn(获取输入\u fn(X,y,LABEL,num\u epochs=1,
洗牌=错误)
~\AppData\Local\Continuum\Anaconda3\envs\tensorflow\lib\site-
packages\tensorflow\contrib\predictor\predictor.py在调用中(self,input\u dict)
63 """
64#TODO(jamieas):是否将验证设置为可选?
--->65输入键=设置(输入键())
66预期的\u keys=set(self.feed\u tensors.keys())
67意外\u键=输入\u键-预期\u键
AttributeError:“函数”对象没有属性“键”
欢迎任何输入。我在windows 10上,在Anaconda虚拟环境中使用Tensorflow 1.3和Python 3.5。再翻一翻,predict\u fn需要一个字典,其键设置为与您的模型所需的功能变量完全相同的名称。在我的CNN模型中,输入是“输入”,如下所示:
def _cnn_model_fn(features, labels, mode):
# Input Layer
print("features shape", features['inputs'])
这是我在predict_fn中传递的内容,其中myimage是一个扁平的np数组
predictions = predict_fn({"inputs": [myimage]})
我遇到了同样的错误-你有进步吗?如果有任何建议,我将不胜感激。