首页 > 解决方案 > Universal Sentence Encoder 加载错误“错误:SavedModel 文件不存在于...”

问题描述

我在 Ananconda 的 2 个虚拟环境中安装了 Uiniversal Sentence Encoder (Tensorflow 2)。一个在 Mac 上,另一个在 Ubuntu 上。

所有人都使用了以下内容:

  module_url = "https://tfhub.dev/google/universal-sentence-encoder/4" 
  model = hub.load(module_url)

安装:

conda create -n my-tf2-env python=3.6 tensorflow
conda init bash
conda activate my-tf2-env
conda install -c conda-forge tensorflow-hub

但是,由于 3 周后的未知原因,Mac 无法使用以下错误,该错误在以下位置失败:

model = hub.load(module_url)

Error: SavedModel file does not exist at: /var/folders/99/8rwn_9hx3jj9x3qz6yf0j2f00000gp/T/tfhub_modules/063d866c06683311b44b4992fd46003be952409c/{saved_model.pbtxt|saved_model.pb}

在 Mac 上,我使用相同的过程重新创建了新的环境,但有相同的错误。

在 Ubuntu 上,一切正常。

我想知道如何修复Mac。谢谢你的帮助。

我在 Mac 上尝试的是,我尝试将“ https://tfhub.dev/google/universal-sentence-encoder/4 ”下载到本地驱动器并在将来从本地驱动器加载它,而不是从 Web url 加载。此过程尚未完成且尚未成功。我不记得这次尝试是否有任何东西下载到 Mac,这可能会损坏我 Mac 的登录用户帐户上的 Tensorflow-hub。

标签: tensorflow2.0tensorflow-hub

解决方案


saved_model.pb当 .文件中指定的路径中不存在时,通常会发生此错误module_url

例如,如果我们考虑如下屏幕截图所示的文件夹结构,

在此处输入图像描述

编码,

import tensorflow_hub as hub

module_url = "https://tfhub.dev/google/universal-sentence-encoder/4" 
model = hub.load(module_url)

import tensorflow_hub as hub

module_url = "/home/mothukuru/Downloads/Hub" 
model = hub.load(module_url)

工作顺利。

但是,如果saved_model.pb该文件夹中不存在如下所示,

在此处输入图像描述

执行代码,

import tensorflow_hub as hub

module_url = "/home/mothukuru/Downloads/Hub" 
model = hub.load(module_url)

导致以下错误,

OSError: SavedModel file does not exist at: /home/mothukuru/Downloads/Hub/{saved_model.pbtxt|saved_model.pb}

在您的特定情况下,在模型下载过程中执行代码可能会导致错误。

如评论中所述,删除下载的文件可以解决问题。

如果此答案没有解决您的问题,请告诉我,我很乐意相应地对其进行修改。


推荐阅读