此 load() 缺少 2 个必需的位置参数:'tags' 和 'export_dir'。这是我在 运行 来自 Github 的对象检测 API 时得到的错误
This load() missing 2 required positional arguments: 'tags' and 'export_dir' .This is the error i get when I run the Object Detection API from Github
我下载了这个 API 并按照他们的建议使用了 TensorFlow 1.15,但无论我做什么我总是收到这个错误
这是给我错误的代码
model_name = 'ssd_mobilenet_v1_coco_2017_11_17'
detection_model = load_model(model_name)
问题的原因似乎是函数 load_model
def load_model(model_name):
base_url = 'http://download.tensorflow.org/models/object_detection/'
model_file = model_name + '.tar.gz'
model_dir = tf.keras.utils.get_file(
fname=model_name,
origin=base_url + model_file,
untar=True)
model_dir = pathlib.Path(model_dir)/"saved_model"
model = tf.saved_model.load(str(model_dir))
model = model.signatures['serving_default']
return model
所以我确实尝试使用此页面上的解决方案添加参数:Problem with running object_detection_tutorial TypeError: load() missing 2 required positional arguments
当我应用修复程序时(据我所知)
这是代码:
def load_model(model_name):
base_url = 'http://download.tensorflow.org/models/object_detection/'
model_file = model_name + '.tar.gz'
model_dir = tf.keras.utils.get_file(
fname=model_name,
origin=base_url + model_file,
untar=True)
model_dir = pathlib.Path(model_dir)/"saved_model"
model = tf.compat.v1.saved_model.load(str(model_dir),None)**#change i made**
model = model.signatures['serving_default']
return model
不断出现新错误,例如:
<ipython-input-23-e10c73a22cc9> in <module>
1 model_name = 'ssd_mobilenet_v1_coco_2017_11_17'
----> 2 detection_model = load_model(model_name)
<ipython-input-20-11f71129951a> in load_model(model_name)
9 model_dir = pathlib.Path(model_dir)/"saved_model"
10
---> 11 model = tf.compat.v1.saved_model.load(str(model_dir),None)
12 model = model.signatures['serving_default']
13
D:\Anaconda\envs\work\lib\site-packages\tensorflow_core\python\util\deprecation.py in new_func(*args, **kwargs)
322 'in a future version' if date is None else ('after %s' % date),
323 instructions)
--> 324 return func(*args, **kwargs)
325 return tf_decorator.make_decorator(
326 func, new_func, 'deprecated',
TypeError: load() missing 1 required positional argument: 'export_dir'
感谢任何帮助,
非常感谢。
试试这个:- 代码在 tensorflow = 2.2.0 中运行良好,无需任何更改。
这是一个 tensorflow 向后兼容性问题,行 tf.saved_model.load(model_dir)
仅适用于 tensorflow 2.X 而不是 tensorflow 1.X。如果有人在使用 tensorflow 1.x 冻结你的图表然后 tf.Session,tensorflow 网站上提供了更好的将模型从 tf1 转换为 tf2 的文档:https://www.tensorflow.org/guide/migrate#converting_models
建议:尽量使用 tensorflow 2.X 它更容易加载、保存和 运行 模型。
我下载了这个 API 并按照他们的建议使用了 TensorFlow 1.15,但无论我做什么我总是收到这个错误
这是给我错误的代码
model_name = 'ssd_mobilenet_v1_coco_2017_11_17'
detection_model = load_model(model_name)
问题的原因似乎是函数 load_model
def load_model(model_name):
base_url = 'http://download.tensorflow.org/models/object_detection/'
model_file = model_name + '.tar.gz'
model_dir = tf.keras.utils.get_file(
fname=model_name,
origin=base_url + model_file,
untar=True)
model_dir = pathlib.Path(model_dir)/"saved_model"
model = tf.saved_model.load(str(model_dir))
model = model.signatures['serving_default']
return model
所以我确实尝试使用此页面上的解决方案添加参数:Problem with running object_detection_tutorial TypeError: load() missing 2 required positional arguments
当我应用修复程序时(据我所知) 这是代码:
def load_model(model_name):
base_url = 'http://download.tensorflow.org/models/object_detection/'
model_file = model_name + '.tar.gz'
model_dir = tf.keras.utils.get_file(
fname=model_name,
origin=base_url + model_file,
untar=True)
model_dir = pathlib.Path(model_dir)/"saved_model"
model = tf.compat.v1.saved_model.load(str(model_dir),None)**#change i made**
model = model.signatures['serving_default']
return model
不断出现新错误,例如:
<ipython-input-23-e10c73a22cc9> in <module>
1 model_name = 'ssd_mobilenet_v1_coco_2017_11_17'
----> 2 detection_model = load_model(model_name)
<ipython-input-20-11f71129951a> in load_model(model_name)
9 model_dir = pathlib.Path(model_dir)/"saved_model"
10
---> 11 model = tf.compat.v1.saved_model.load(str(model_dir),None)
12 model = model.signatures['serving_default']
13
D:\Anaconda\envs\work\lib\site-packages\tensorflow_core\python\util\deprecation.py in new_func(*args, **kwargs)
322 'in a future version' if date is None else ('after %s' % date),
323 instructions)
--> 324 return func(*args, **kwargs)
325 return tf_decorator.make_decorator(
326 func, new_func, 'deprecated',
TypeError: load() missing 1 required positional argument: 'export_dir'
感谢任何帮助, 非常感谢。
试试这个:- 代码在 tensorflow = 2.2.0 中运行良好,无需任何更改。
这是一个 tensorflow 向后兼容性问题,行 tf.saved_model.load(model_dir)
仅适用于 tensorflow 2.X 而不是 tensorflow 1.X。如果有人在使用 tensorflow 1.x 冻结你的图表然后 tf.Session,tensorflow 网站上提供了更好的将模型从 tf1 转换为 tf2 的文档:https://www.tensorflow.org/guide/migrate#converting_models
建议:尽量使用 tensorflow 2.X 它更容易加载、保存和 运行 模型。