我正在尝试使用集线器并遵循this指南来加载TF1模型。
此模型附带一个句子模型:
spm_path = m.signatures['spm_path']
<tensorflow.python.eager.wrap_function.WrappedFunction at 0x1341129e8>
如果我执行此功能:
spm_path()
{'default': <tf.Tensor: id=5905, shape=(), dtype=string, numpy=b'SAVEDMODEL-ASSET'>}
但是,如果我使用b'SAVEDMODEL-ASSET'
的输出来加载我的sentencepiece
模型,则会出现以下错误:
sp.Load(b'SAVEDMODEL-ASSET')
OSError: Not found: "SAVEDMODEL-ASSET": No such file or directory Error #2
问题是我不确定该资产位于何处-集线器在哪里存储下载的模块?
我可以找到以下内容:os.environ['TFHUB_CACHE_DIR'] = '/tmp/tfhub'
,但这不足以让我在计算机上找到实际文件并传递正确的文件。
答案 0 :(得分:1)
这有点笨拙,但这是一种实现方法:
uselite = hub.load("https://tfhub.dev/google/universal-sentence-encoder-lite/2")
sp = sentencepiece.SentencePieceProcessor()
sp.load(uselite.asset_paths[0].asset_path.numpy())
asset_paths
仅包含一项,它是spm模型的路径。
答案 1 :(得分:0)
我也遇到了同样的问题,试图为ALBERT模型加载令牌化所需的资产。我发现m.asset_paths中有一个资产列表。有Asset对象,您可以使用.asset_path属性访问路径。问题是您需要检查资产的路径,以找到所需的路径。也许有更好的方法,但是我不知道。