如何解决 Tensorflow 2 对象检测 API 中的 UnicodeError

Posted

技术标签:

【中文标题】如何解决 Tensorflow 2 对象检测 API 中的 UnicodeError【英文标题】:How to resolve UnicodeError in Tensorflow 2 Object Detection API 【发布时间】:2021-11-04 22:25:23 【问题描述】:

我有一个问题,但是当我训练 tensorflow-object-detection-API 时,出现以下错误。你能告诉我是否有任何解决方法吗?

执行命令

python model_main_tf2.py --model_dir=models/my_ssd_mobilenet_v1_fpn_640x640_coco17_tpu-8 --pipeline_config_path=models/my_ssd_mobilenet_v1_fpn_640x640_coco17_tpu-8/pipeline.config

错误消息

  File "model_main_tf2.py", line 115, in <module>
    tf.compat.v1.app.run()
  File "C:\Users\rh731\.virtualenvs\Tensorflow\lib\site-packages\tensorflow\python\platform\app.py", line 40, in ru
n
    _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
  File "C:\Users\rh731\.virtualenvs\Tensorflow\lib\site-packages\absl\app.py", line 303, in run
    _run_main(main, args)
  File "C:\Users\rh731\.virtualenvs\Tensorflow\lib\site-packages\absl\app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "model_main_tf2.py", line 106, in main
    model_lib_v2.train_loop(
  File "C:\Users\rh731\.virtualenvs\Tensorflow\lib\site-packages\object_detection\model_lib_v2.py", line 611, in tr
ain_loop
    manager = tf.compat.v2.train.CheckpointManager(
  File "C:\Users\rh731\.virtualenvs\Tensorflow\lib\site-packages\tensorflow\python\training\checkpoint_management.p
y", line 640, in __init__
    recovered_state = get_checkpoint_state(directory)
  File "C:\Users\rh731\.virtualenvs\Tensorflow\lib\site-packages\tensorflow\python\training\checkpoint_management.p
y", line 278, in get_checkpoint_state
    file_content = file_io.read_file_to_string(
  File "C:\Users\rh731\.virtualenvs\Tensorflow\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 352, in
 read_file_to_string
    return f.read()
  File "C:\Users\rh731\.virtualenvs\Tensorflow\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 117, in
 read
    self._preread_check()
  File "C:\Users\rh731\.virtualenvs\Tensorflow\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 79, in
_preread_check
    self._read_buf = _pywrap_file_io.BufferedInputStream(
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 108: invalid start byte

我做了什么 -我尝试转换 pipeline.config 的字符代码。 - API 已经过测试。 (就像附图一样没问题。) -检查执行命令是否有错误。

另外,当在另一个网络上学习时,我能够完成学习到最后,而不会出现这样的错误。这一次,我也下载并运行了训练好的模型。

参考网站: ·教程 https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/training.html#training-the-model ・ 训练模型列表https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2_detection_zoo.md

对于给您带来的不便,我们深表歉意,但感谢您的合作。

【问题讨论】:

【参考方案1】:

很可能是因为您试图在本地计算机上运行TPU 模型(我从您的 PyCharm 屏幕截图中猜到了)。尝试运行基于 GPU 的模型或 CPU 模型。

【讨论】:

抱歉联系晚了!!!如果您能告诉我什么是 GPU 模型的好例子,我将不胜感激。

以上是关于如何解决 Tensorflow 2 对象检测 API 中的 UnicodeError的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Tensorflow 2 对象检测 API 恢复微调模型以进行测试?

我如何使用 tensorflow 对象检测来仅检测人员?

使用 Tensorflow 2 对象检测 API 冻结了哪些层?

如何修改 ssd mobilenet 配置以使用 tensorflow 对象检测 API 检测小对象?

如何在 Tensorflow 对象检测 api 中评估预训练模型

如何在 Tensorflow 对象检测 API 中查找边界框坐标