如何解决 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 2 对象检测 API 冻结了哪些层?
如何修改 ssd mobilenet 配置以使用 tensorflow 对象检测 API 检测小对象?