Tensorflow

时间:2017-08-11 11:35:49

标签: python machine-learning tensorflow

我有一个简单的LinearModel,它有两个稀疏和两个实值特征。我训练了它,现在我想用export_savedmodel导出它。引用了一些来源,我想出了一些基本的内容:

feature_spec = create_feature_spec_for_parsing(
    [
        real_valued_column_1, real_valued_column_2,
        sparse_column_1, sparce_column_2
    ]
)
input_receiver_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(feature_spec)
my_estimator.export_savedmodel('my_model/', serving_input_fn=input_receiver_fn)

其中:

real_valued_column_1 = tf.contrib.layers.real_valued_column(
    'avg_consumption_h')
sparse_column_1 = tf.contrib.layers.sparse_column_with_integerized_feature("sparse_1", bucket_size=24)

不幸的是,我在ValueError: A default input_alternative must be provided.上获得了export_savedmodel。我稍微深入了解tensorflow的代码库,似乎build_parsing_serving_input_receiver_fn总是返回ServingInputReceiver但是如果传递给export_savedmodel的serving_input_fn不属于类型,则提取input_alternatives的方法总是将它们设置为空InputFnOps

build_parsing_serving_input_receiver_fn是否被某种方式弃用,在提取input_alternative的过程中出现了问题,或者我可能完全误解了进程并做错了什么?

我正在使用带有tensorflow 1.2的python 3.6,我的模型很简单tf.contrib.learn.LinearRegressor

1 个答案:

答案 0 :(得分:3)

您可以尝试以下

from tensorflow.contrib.learn.python.learn.utils.input_fn_utils import build_parsing_serving_input_fn
input_receiver_fn = build_parsing_serving_input_fn(feature_spec)