【问题标题】:How can I solve keyerror如何解决密钥错误
【发布时间】:2019-06-15 10:41:27
【问题描述】:

我正在研究 colab 中的对象检测。 我从 GitHub 获得了代码。 这里是链接https://medium.com/@moshe.livne/training-tensorflow-for-free-pet-object-detection-api-sample-trained-on-google-collab-c2e65f4a9949

当我使用 create_pet_tf_record.py 时,出现错误。 这是键错误。 我只是有一个类,它不是同一个类别。 现在,我的班级是 Shin,但 KeyError 是“drop”。 其实我很久以前就用过'drop'这个分类了。

你能解决这些错误吗

代码在 google colab 上运行。 我的课只是一个“Shin” 我修改了这些代码,并确认运行其他图像的代码。

这是可以创建tfrecord文件的代码。

%cd ~/datalab

!python ~/models/research/object_detection/dataset_tools/create_pet_tf_record.py --label_map_path=label_map.pbtxt --data_dir=. --output_dir=. --num_shards=1

这是我的错误

/root/datalab
WARNING: Logging before flag parsing goes to stderr.
W0615 10:23:11.859250 139781813761920 deprecation_wrapper.py:119] From /root/models/research/object_detection/dataset_tools/create_pet_tf_record.py:318: The name tf.app.run is deprecated. Please use tf.compat.v1.app.run instead.

W0615 10:23:11.859874 139781813761920 deprecation_wrapper.py:119] From /usr/local/lib/python2.7/dist-packages/object_detection-0.1-py2.7.egg/object_detection/utils/label_map_util.py:132: The name tf.gfile.GFile is deprecated. Please use tf.io.gfile.GFile instead.

I0615 10:23:11.861181 139781813761920 create_pet_tf_record.py:273] Reading from Pet dataset.
I0615 10:23:11.861639 139781813761920 create_pet_tf_record.py:288] 21 training and 9 validation examples.
W0615 10:23:11.861834 139781813761920 deprecation_wrapper.py:119] From /usr/local/lib/python2.7/dist-packages/object_detection-0.1-py2.7.egg/object_detection/dataset_tools/tf_record_creation_util.py:43: The name tf.python_io.TFRecordWriter is deprecated. Please use tf.io.TFRecordWriter instead.

I0615 10:23:11.862046 139781813761920 create_pet_tf_record.py:241] On image 0 of 21
/usr/local/lib/python2.7/dist-packages/object_detection-0.1-py2.7.egg/object_detection/utils/dataset_util.py:75: FutureWarning: The behavior of this method will change in future versions. Use specific 'len(elem)' or 'elem is not None' test instead.
  if not xml:
Traceback (most recent call last):
  File "/root/models/research/object_detection/dataset_tools/create_pet_tf_record.py", line 318, in <module>
    tf.app.run()
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 40, in run
    _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
  File "/usr/local/lib/python2.7/dist-packages/absl/app.py", line 300, in run
    _run_main(main, args)
  File "/usr/local/lib/python2.7/dist-packages/absl/app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "/root/models/research/object_detection/dataset_tools/create_pet_tf_record.py", line 305, in main
    mask_type=FLAGS.mask_type)
  File "/root/models/research/object_detection/dataset_tools/create_pet_tf_record.py", line 260, in create_tf_record
    mask_type=mask_type)
  File "/root/models/research/object_detection/dataset_tools/create_pet_tf_record.py", line 167, in dict_to_tf_example
    classes.append(label_map_dict[class_name])
KeyError: 'drop'

我检查了我的 label_map。我只能看到一个类“Shin”

你知道我该如何解决吗?

【问题讨论】:

    标签: keyerror tfrecord


    【解决方案1】:

    这是一个未定义的类,你必须从:

        classes.append(label_map_dict[class_name])
    

    文件“/root/models/research/object_detection/dataset_tools/create_pet_tf_record.py” 到:

        classes.append(label_map_dict[x])
    

    是 x 是 file.pbtxt 的类的编号(在这种情况下:'drop')。 除非您将该代码用于 1 个以上的课程,否则它将解决问题。 我希望它能起作用,好湖。

    【讨论】:

    • 我有同样的错误请如果有人有最佳答案请不要通过。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 2020-07-18
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多