用于分类器的 Tensorflow 服务 SignatureDefs
Tensorflow Serve SignatureDefs for classifier
我按照这些步骤训练了一个 BERT 文本分类器,使用了自己的文本并进行了一些修改:
https://www.tensorflow.org/tutorials/text/classify_text_with_bert
要导出模型并 运行 使用 Tensorflow Serve 效果很好:
https://www.tensorflow.org/tfx/serving/docker
不幸的是,我真的不知道如何为分类器定义 SignatureDefs,以便定义 Tensorflow Serve 的分类器端点。 :predict
端点运行良好,似乎是默认签名。
显然,我必须在保存模型时定义签名。由于关于这个主题的文档不是很详尽,我不确定如何定义分类器签名。
https://www.tensorflow.org/tfx/serving/signature_defs
在上面的 BERT 示例中,serving_results
只是用 tf.constant(examples)
定义 reloaded_model
并用 serving_results = tf.sigmoid(serving_results['classifier')]
.
实例化它
因此,我假设在调用 model.save
方法时必须将激活函数和 classifier
签名作为参数。
predict
端点工作,classify
端点给出错误:
{"error": "No classification inputs found in SignatureDef: inputs {\n key: \"text\"\n value {\n name: \"serving_default_text:0\"\n dtype: DT_STRING\n tensor_shape {\n dim {\n size: -1\n }\n }\n }\n}\noutputs {\n key: \"classifier\"\n value {\n name: \"StatefulPartitionedCall_2:0\"\n dtype: DT_FLOAT\n tensor_shape {\n dim {\n size: -1\n }\n dim {\n size: 1\n }\n }\n }\n}\nmethod_name: \"tensorflow/serving/predict\"\n"}
如有任何提示,我将不胜感激。
可以在此处找到定义签名的正确文档。
https://www.tensorflow.org/tfx/serving/serving_basic?hl=en
builder.add_meta_graph_and_variables(
sess, [tf.compat.v1.saved_model.tag_constants.SERVING],
signature_def_map={
'predict_images':
prediction_signature,
tf.compat.v1.saved_model.signature_constants
.DEFAULT_SERVING_SIGNATURE_DEF_KEY:
classification_signature,
},
我按照这些步骤训练了一个 BERT 文本分类器,使用了自己的文本并进行了一些修改:
https://www.tensorflow.org/tutorials/text/classify_text_with_bert
要导出模型并 运行 使用 Tensorflow Serve 效果很好:
https://www.tensorflow.org/tfx/serving/docker
不幸的是,我真的不知道如何为分类器定义 SignatureDefs,以便定义 Tensorflow Serve 的分类器端点。 :predict
端点运行良好,似乎是默认签名。
显然,我必须在保存模型时定义签名。由于关于这个主题的文档不是很详尽,我不确定如何定义分类器签名。
https://www.tensorflow.org/tfx/serving/signature_defs
在上面的 BERT 示例中,serving_results
只是用 tf.constant(examples)
定义 reloaded_model
并用 serving_results = tf.sigmoid(serving_results['classifier')]
.
因此,我假设在调用 model.save
方法时必须将激活函数和 classifier
签名作为参数。
predict
端点工作,classify
端点给出错误:
{"error": "No classification inputs found in SignatureDef: inputs {\n key: \"text\"\n value {\n name: \"serving_default_text:0\"\n dtype: DT_STRING\n tensor_shape {\n dim {\n size: -1\n }\n }\n }\n}\noutputs {\n key: \"classifier\"\n value {\n name: \"StatefulPartitionedCall_2:0\"\n dtype: DT_FLOAT\n tensor_shape {\n dim {\n size: -1\n }\n dim {\n size: 1\n }\n }\n }\n}\nmethod_name: \"tensorflow/serving/predict\"\n"}
如有任何提示,我将不胜感激。
可以在此处找到定义签名的正确文档。
https://www.tensorflow.org/tfx/serving/serving_basic?hl=en
builder.add_meta_graph_and_variables(
sess, [tf.compat.v1.saved_model.tag_constants.SERVING],
signature_def_map={
'predict_images':
prediction_signature,
tf.compat.v1.saved_model.signature_constants
.DEFAULT_SERVING_SIGNATURE_DEF_KEY:
classification_signature,
},