TensorFlow目标检测加载模型时出现utf-8 UnicodeDecodeError问题求助
解决方案
优先修正路径写法:Windows系统下路径中的反斜杠属于转义字符,你当前定义的路径没有做转义处理会导致路径解析异常,触发解码错误。可以选择以下任意一种方式修正路径:
- 给字符串加r前缀标记为原始字符串:
PATH_TO_MODEL_DIR = r"C:\tf_1125\workspace\training_demo\models\my_ssd_resnet50_v1_fpn" - 把反斜杠替换为正斜杠:
PATH_TO_MODEL_DIR = "C:/tf_1125/workspace/training_demo/models/my_ssd_resnet50_v1_fpn" - 双写反斜杠完成转义:
PATH_TO_MODEL_DIR = "C:\\tf_1125\\workspace\\training_demo\\models\\my_ssd_resnet50_v1_fpn"
- 给字符串加r前缀标记为原始字符串:
路径修正后仍报错的话,替换原有读取配置的逻辑,手动指定编码读取配置文件,规避TensorFlow默认读取逻辑的编码兼容问题,替换代码如下:
# 替换原来的 configs = config_util.get_configs_from_pipeline_file(PATH_TO_CFG) 这一行 from google.protobuf import text_format from object_detection.protos import pipeline_pb2 pipeline_config = pipeline_pb2.TrainEvalPipelineConfig() with open(PATH_TO_CFG, 'r', encoding='utf-8') as f: proto_str = f.read() text_format.Merge(proto_str, pipeline_config) configs = config_util.get_configs_from_pipeline_proto(pipeline_config)
- 检查pipeline.config文件和全项目路径,删除所有中文、韩文等非ASCII字符的注释、命名,保证路径、配置文件内容仅含英文字符、数字和常规符号。
- 确认项目没有放在包含中文、空格、特殊字符的路径下,比如不要放在桌面、中文用户名目录这类自带非ASCII路径的位置。
内容的提问来源于stack exchange,提问作者Clare
相关产品推荐
相关产品推荐

