将 xml 文件转换为 tfrecord 文件时出错

Yue*_* Xu 3 python object-detection tensorflow

我正在 Macbook 上学习 TensorFlow 2 对象检测 API 教程

这是我在运行将 xmls 转换为 TFrecords 的给定脚本时得到的结果

Traceback (most recent call last):
  File "generate_tfrecord.py", line 62, in <module>
    label_map_dict = label_map_util.get_label_map_dict(label_map)
  File "/usr/local/lib/python3.8/site-packages/object_detection/utils/label_map_util.py", line 164, in get_label_map_dict
    label_map = load_labelmap(label_map_path)
  File "/usr/local/lib/python3.8/site-packages/object_detection/utils/label_map_util.py", line 133, in load_labelmap
    label_map_string = fid.read()
  File "/usr/local/lib/python3.8/site-packages/tensorflow/python/lib/io/file_io.py", line 116, in read
    self._preread_check()
  File "/usr/local/lib/python3.8/site-packages/tensorflow/python/lib/io/file_io.py", line 78, in _preread_check
    self._read_buf = _pywrap_file_io.BufferedInputStream(
TypeError: __init__(): incompatible constructor arguments. The following argument types are supported:
    1. tensorflow.python._pywrap_file_io.BufferedInputStream(arg0: str, arg1: int)

Invoked with: item {
  name: "cat"
  id: 1
}
, 524288
Run Code Online (Sandbox Code Playgroud)

我的标签地图文件包含以下内容

item {
    id: 1
    name: 'cat'
}
Run Code Online (Sandbox Code Playgroud)

小智 11

看来问题可以通过更换来解决

label_map = label_map_util.load_labelmap(args.labels_path)
label_map_dict = label_map_util.get_label_map_dict(label_map)
Run Code Online (Sandbox Code Playgroud)

作为

label_map_dict = label_map_util.get_label_map_dict(args.labels_path)
Run Code Online (Sandbox Code Playgroud)