File 使用Tensorflow hub时,SavedModel文件不存在

File 使用Tensorflow hub时,SavedModel文件不存在,file,tensorflow,directory,tensorflow-hub,oserror,File,Tensorflow,Directory,Tensorflow Hub,Oserror,当尝试从tensorflow\u hub使用hub.load函数时,我得到一个OSError:SavedModel文件不存在于:错误 奇怪的是,它在几天前起作用了,所以我不太明白为什么我现在会出现这个错误 要复制的代码: import tensorflow as tf import tensorflow_hub as hub URL = 'https://tfhub.dev/google/universal-sentence-encoder/4' embed = hub.load(URL)

当尝试从
tensorflow\u hub
使用
hub.load
函数时,我得到一个
OSError:SavedModel文件不存在于:
错误

奇怪的是,它在几天前起作用了,所以我不太明白为什么我现在会出现这个错误

要复制的代码:

import tensorflow as tf
import tensorflow_hub as hub

URL = 'https://tfhub.dev/google/universal-sentence-encoder/4'
embed = hub.load(URL)
收到特定错误:

OSError                                   Traceback (most recent call last)
<ipython-input-11-dfb80f0299b2> in <module>
      1 URL = 'https://tfhub.dev/google/universal-sentence-encoder/4'
----> 2 embed = hub.load(URL)

~/opt/anaconda3/lib/python3.7/site-packages/tensorflow_hub/module_v2.py in load(handle, tags)
    100   if tags is None and is_hub_module_v1:
    101       tags = []
--> 102   obj = tf_v1.saved_model.load_v2(module_path, tags=tags)
    103   obj._is_hub_module_v1 = is_hub_module_v1  # pylint: disable=protected-access
    104   return obj

~/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/saved_model/load.py in load(export_dir, tags)
    576     ValueError: If `tags` don't match a MetaGraph in the SavedModel.
    577   """
--> 578   return load_internal(export_dir, tags)
    579 
    580 

~/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/saved_model/load.py in load_internal(export_dir, tags, loader_cls)
    586     tags = nest.flatten(tags)
    587   saved_model_proto, debug_info = (
--> 588       loader_impl.parse_saved_model_with_debug_info(export_dir))
    589 
    590   if (len(saved_model_proto.meta_graphs) == 1 and

~/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/saved_model/loader_impl.py in parse_saved_model_with_debug_info(export_dir)
     54     parsed. Missing graph debug info file is fine.
     55   """
---> 56   saved_model = _parse_saved_model(export_dir)
     57 
     58   debug_info_path = os.path.join(

~/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/saved_model/loader_impl.py in parse_saved_model(export_dir)
    111                   (export_dir,
    112                    constants.SAVED_MODEL_FILENAME_PBTXT,
--> 113                    constants.SAVED_MODEL_FILENAME_PB))
    114 
    115 

OSError: SavedModel file does not exist at: /var/folders/77/rvfl368x44s51r8dc3b6l2rh0000gn/T/tfhub_modules/063d866c06683311b44b4992fd46003be952409c/{saved_model.pbtxt|saved_model.pb}
OSError回溯(最近一次调用)
在里面
1 URL=https://tfhub.dev/google/universal-sentence-encoder/4'
---->2 embed=hub.load(URL)
加载中的~/opt/anaconda3/lib/python3.7/site-packages/tensorflow\u hub/module\u v2.py(句柄、标签)
100如果标记为无且为_hub _module _v1:
101标签=[]
-->102 obj=tf_v1.保存的_模型.加载_v2(模块路径,标签=标签)
103 obj._is_hub_module_v1=is_hub_module_v1 35; pylint:disable=受保护访问
104返回obj
~/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/saved\u model/load.py in load(导出目录,标签)
576 ValueError:如果“标记”与SavedModel中的元图不匹配。
577   """
-->578返回加载\u内部(导出目录,标签)
579
580
~/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/saved\u model/load.py in load\u internal(export\u dir,tags,loader\u cls)
586标记=嵌套.展平(标记)
587已保存的\u模型\u原型,调试\u信息=(
-->588加载程序\u impl.解析\u保存的\u模型\u和\u调试\u信息(导出\u目录))
589
590如果(len(保存的模型元图)==1和
~/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/saved\u model/loader\u impl.py,在带有调试信息的parse\u saved\u model\u中(导出目录)
54已解析。缺少图形调试信息文件是正常的。
55   """
--->56保存的\u模型=\u解析\u保存的\u模型(导出\u目录)
57
58调试信息路径=os.path.join(
解析保存的模型(导出目录)中的~/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/saved\u model/loader\u impl.py
111(出口主任),
112 constants.SAVED_MODEL_FILENAME_PBTXT,
-->113常数。已保存(模型文件名)
114
115
OS错误:保存的模型文件不存在于:/var/folders/77/rvfl368x44s51r8dc3b6l2rh0000gn/T/tfhub_modules/063D866C06683311B44B492FD4603BE952409C/{saved_model.pbtxt | saved_model.pb}

因此,只需删除该文件夹并再次运行hub.load()函数即可解决此问题

我尝试了上述解决方案,但对我无效

以下是有效的方法:

  • 从tfhub.dev下载带有资产、变量和.pb检查点文件的模型
  • 确保导入tensorflow\u文本模块
  • 导入tensorflow\u文本

  • hub.load()语句中指定下载的文件夹路径,如中所示:
  • 模型= hub.load(“/Users/bilguun/Desktop/universal-station-encoder-multilingual-large_3/”)


    我使用的是
    i3d=hub.load(https://tfhub.dev/deepmind/i3d-kinetics-400/1).signatures['default']
    如图所示

    这种加载模型的方法在那天起作用,但几天后我得到了相同的错误:OSError:SavedModel文件不存在于:C:\Users\catal\AppData\Local\Temp\tfhub\u modules\092225fb776e28d6d64ac605ab6be03f18dd2027{saved_model.pbtxt | saved_model.pb}

    在做了一些研究之后,我了解到保存的模型文件位置(在错误中指定)是临时的,因此即使该文件夹仍然存在,也没有保存的模型.pb。因此我下载了链接到此处的模型:并设置
    i3d=hub.load(“C:\\absolute\u path\u to\u saved\u model\u folder”)。签名['default']
    ,它成功了

    因此,在我的案例中,使用比尔古恩的答案真的很有帮助。

    另请参见: