服务TensorFlow预先建立的线性分类器估计器模型

时间:2019-07-10 15:09:20

标签: python tensorflow tensorflow-serving tensorflow-estimator

我正在尝试使用我们自己的CSV数据集运行经过训练的this教程模型,并使用TensorFlow Serving在每行中由4个int值(最后一个是标签)组成一段距离,

我正在远距离使用Docker运行TensorFlow Serving,而我的开发环境是使用Python 3.6的Windows。

我使用以下代码导出模型,类似于给定here的示例:

(Ctrl+o)T:\Easy Labels\Customers\Toyota\MEX_mat.lab
(Ctrl+p)1704412

老实说,我不确定结果如何,但是在this指南中,half_plus_two模型提出了这样的预测数组

feature_spec = {'firstInt': tf.FixedLenFeature([1], tf.int64),
                'secondInt': tf.FixedLenFeature([1], tf.int64),
                'thirdInt': tf.FixedLenFeature([1], tf.int64)}

def serving_input_receiver_fn():
    serialized_tf_example = tf.placeholder(dtype=tf.string,
                                           shape=[None],
                                           name='input_example_tensor')
    receiver_tensors = {'examples': serialized_tf_example}
    features = tf.parse_example(serialized_tf_example, feature_spec)
    return tf.estimator.export.ServingInputReceiver(features, receiver_tensors)

classifier.export_savedmodel(
    '.\\SaveLC\\save_dir',
    serving_input_receiver_fn=serving_input_receiver_fn)

发送了这样的POST请求

"predictions": [
        2.5,
        3,
        4.5
    ]

所以我想应该返回类似的内容,但是我被告知一个可服务对象甚至不存在。值得注意的是,它似乎也可以与指南中提供的其他模型一起使用。

{"instances": [1.0, 2.0, 5.0]}

此可服务内容是什么,如果我当前的方法当前不起作用,则该导出是什么意思?

谢谢

1 个答案:

答案 0 :(得分:0)

看起来您保存模型的路径.\\SaveLC\\save_dir和用于启动TensorFlow Serving容器并打开REST API端口的路径可能不相同。

启动TensorFlow Serving容器并打开REST API端口的代码是:

docker run -t --rm -p 8501:8501 \
    -v "$TESTDATA/saved_model_half_plus_two_cpu:/models/half_plus_two" \
    -e MODEL_NAME=half_plus_two \
    tensorflow/serving &

如果从终端或命令执行命令,则冒号之前的路径(在此示例中为$TESTDATA/saved_model_half_plus_two_cpu)与保存模型的路径应该相同,并且应为完整路径。提示。

关于模型路径的另一个重要点是,我们不应在上述命令中包括版本号或时间戳值。