问题描述
我已将通用句子编码器 2 下载到无法访问互联网的计算机上并解压到目标文件夹:“data”。
import tensorflow as tf
import tensorflow_hub as hub
USE_embedder = hub.load(r'data/')
如果我像往常一样运行 USE_embedder(['test'])
,我会收到错误:TypeError: 'Autotrackable' object is not callable.
但是按照 tensorflow 文档,我认为我可以运行:
USE_embedder.signatures['default'](['test'])
但我得到了类型错误:
TypeError: pruned(text: expected argument #0(zero-based to be a Tensor; got list(['test'])
当我可以从联网的计算机上运行它时,从 https://tfhub.dev/google/universal-sentence-encoder/2 加载而不是提取的下载,我可以很好地运行这样的东西。如何使模型能够嵌入文档中通常显示的文本(例如,USE_embedder(['text'])
返回向量)。
使用:Python 3.6.7、Tensorflow 2.4.1、Tensorflow_hub 0.11.0
解决方法
当您将列表转换为张量时它应该可以工作:
USE_embedder.signatures['default'](tf.constant(['test']))
(使用 TF 2.4.1、tensorflow_hub 0.11.0 测试)