操作类型未在二进制文件中注册“ SentencepieceEncodeSparse”

时间:2019-07-03 02:35:51

标签: tensorflow-serving

我已经部署了一个模型,该模型使用tfhub模型通过docker进行张量流服务。

这是我的模型中包含的tfhub模型:

https://tfhub.dev/google/universal-sentence-encoder-multilingual/1

这是运行docker的命令

docker run -t --rm -p 8501:8501 \
    -v "/docker_dir/model_tf_serving:/models/mymodel" \
    -e MODEL_NAME=mymodel \
    tensorflow/serving &

发生错误:

Not found: Op type not registered 'SentencepieceEncodeSparse' in binary running on c5e507bf091b. Make sure the Op and Kernel are registered in the binary running in this process. Note that if you are loading a saved graph which used ops from tf.contrib, accessing (e.g.) `tf.contrib.resampler` should be done before importing the graph, as contrib ops are lazily registered when the module is first accessed.

那么有没有办法解决这个问题?

3 个答案:

答案 0 :(得分:2)

我不知道您是否仍然遇到那个问题,但它对我有用

  1. 使用 pip install tensorflow-text 下载该模块
  2. 输入 import tensorflow_text

因为 tf-hub 模块依赖于那个包。

答案 1 :(得分:0)

您必须为TensorFlow安装句子模块:

pip install sentencepiece tf-sentencepiece

答案 2 :(得分:0)

官方枢纽页面上有一条说明,说明如何使用tensorflow = 2使用该模型。 https://tfhub.dev/google/universal-sentence-encoder-multilingual/2

为我工作。

df['ID1'] = df['ID1'].str[0:3] + df['ID2']