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()函数即可解决此问题我尝试了上述解决方案,但对我无效
以下是有效的方法:
我使用的是
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']
,它成功了
因此,在我的案例中,使用比尔古恩的答案真的很有帮助。另请参见: