Skip to main content
 首页 » 编程设计

python之Tensorflow 中 export_savedmodel 的 input_alternative 错误

2024年08月19日30hnrainll

我有一个简单的线性模型,其中包含两个稀疏值特征和两个实值特征。我训练了它,现在我想用 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) 

不幸的是,我在 export_savedmodel 上收到 ValueError: A default input_alternative must be provided.。我深入研究了 tensorflow 的代码库,似乎 build_parsing_serving_input_receiver_fn 总是返回 ServingInputReceiver 但如果 serving_input_fn,提取 input_alternatives 的方法总是将它们创建为空> 传递给 export_savedmodel 的类型不是 InputFnOps。

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

我使用 python 3.6 和 tensorflow 1.2,我的模型是一个简单的 tf.contrib.learn.LinearRegressor。

请您参考如下方法:

你可以试试下面的方法

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)