如何解决od_graph_def.ParseFromString(serialized_graph) DecodeError: 在 Tensorflow 2 对象检测中解析消息时出错
我是 Tensorflow 的新手,但已经能够使用 TF2 成功创建自定义对象检测模型。
我的下一步是尝试使用 python 脚本将我自定义的对象检测模型应用于视频。我正在尝试使用 Google Colab 尝试使用我自定义的 Tensorflow 模型运行 this python video object detection script。
但是,当我尝试使用下面的代码加载自定义模型时,出现如下所示的错误。我认为这可能是 TF1 和 TF2 之间的兼容性问题,但这只是猜测。
抛出错误的代码
# Load the Tensorflow model into memory.
detection_graph = tf.Graph()
with detection_graph.as_default():
od_graph_def=tf.compat.v1.GraphDef()
with tf.compat.v2.io.gfile.GFile(PATH_TO_CKPT,'rb') as fid:
serialized_graph=fid.read()
od_graph_def.ParseFromString(serialized_graph)
tf.import_graph_def(od_graph_def,name='')
sess = tf.Session(graph=detection_graph)
收到错误
DecodeError Traceback (most recent call last)
<ipython-input-14-f59155c3af9a> in <module>()
68 with tf.compat.v2.io.gfile.GFile(PATH_TO_CKPT,'rb') as fid:
69 serialized_graph=fid.read()
---> 70 od_graph_def.ParseFromString(serialized_graph)
71 tf.import_graph_def(od_graph_def,name='')
72
DecodeError: Error parsing message
已经采取的步骤
我找到了 this topic,它修复了此代码块中的另一个问题,该问题是由于 TF1 和 TF2 之间的兼容性问题。但是,它仍然没有解决上述问题。此刻我正用头撞墙。
我的问题
- 有没有办法修复下面的代码,使其不引发错误?
- 将 TF 模型加载到内存中的方式是否从 TF1 更改为 TF2,因此我应该使用完全不同的代码块?
感谢您提供的任何帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。