Universal Sentence Encoder TypeError pruned(text) expected Tensor

问题描述

我已将通用句子编码器 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 测试)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...