tensorflow - 触发 TF 对象检测 API 上的 eval.py 时出错
问题描述
我正在尝试使用以下命令评估我的模型:
python eval.py --logtostderr --pipeline_config_path=training/faster_rcnn_inception_v2_pets.config --checkpoint_dir=inference_graph --eval_dir=eval
我得到这个错误
我收到了这个错误:
回溯(最后一次调用):文件“eval.py”,第 142 行,在 tf.app.run() 文件“C:\Users\mosta\Anaconda3\envs\mat\lib\site-packages\tensorflow_core\python \platform\app.py”,第 40 行,运行中app.py”,第 299 行,运行 _run_main(main, args) 文件“C:\Users\mosta\Anaconda3\envs\mat\lib\site-packages\absl\app.py”,第 250 行,在 _run_main sys .exit(main(argv)) 文件“C:\Users\mosta\Anaconda3\envs\mat\lib\site-packages\tensorflow_core\python\util\deprecation.py”,第 324 行,在 new_func 返回 func(*args , **kwargs) 文件“eval.py”,第 138 行,在主 graph_hook_fn=graph_rewriter_fn) 文件“C:\Users\mosta\Anaconda3\envs\mat\lib\site-packages\object_detection-0.1-py3.5.egg\object_detection\legacy\evaluator.py”,第 274 行,在评估 evaluator_list = get_evaluators(eval_config, categories) 文件“C:\Users\mosta\Anaconda3\envs\mat\lib\site-packages\object_detection-0.1-py3 .5.egg\object_detection\legacy\evaluator.py”,第 166 行,在 get_evaluators EVAL_METRICS_CLASS_DICTeval_metric_fn_key) 文件“C:\Users\mosta\Anaconda3\envs\mat\lib\site-packages\object_detection-0.1-py3.5. egg\object_detection\utils\object_detection_evaluation.py",第 470 行,在\Users\mosta\Anaconda3\envs\mat\lib\site-packages\object_detection-0.1-py3.5.egg\object_detection\utils\object_detection_evaluation.py”,第 470 行,在\Users\mosta\Anaconda3\envs\mat\lib\site-packages\object_detection-0.1-py3.5.egg\object_detection\utils\object_detection_evaluation.py”,第 470 行,在init use_weighted_mean_ap=False) 文件“C:\Users\mosta\Anaconda3\envs\mat\lib\site-packages\object_detection-0.1-py3.5.egg\object_detection\utils\object_detection_evaluation.py”,第 194 行,在init self._build_metric_names() 文件“C:\Users\mosta\Anaconda3\envs\mat\lib\site-packages\object_detection-0.1-py3.5.egg\object_detection\utils\object_detection_evaluation.py”,第 213 行,在 _build_metric_names category_name = unicode(category_name, 'utf-8') NameError: name 'unicode' is not defined
解决方案
你好呀!
Python 3 将该unicode
类型重命名为str
,旧str
类型已替换为bytes
.
知道这一点是有道理的,因为 TF 对象检测 API 的一部分已被弃用(使用 Python 2.x 编写),所以我们遇到了错误
有关如何升级代码以与 Python 3 兼容的更多说明,请参见此处。
我希望这有帮助!
推荐阅读
- json - 如何在yaml中的对象内嵌套数组?
- css - Vuejs .vue 文件:动态少导入
- spring - spring cloud sleuth 无法生成 spanID
- php - Laravel html/collective 值加载到下拉列表中
- c# - 如何从另一个脚本中获取枚举值(Unity)
- .net - 是否可以在大图像上找到并计算所有“猫”?
- java - 为简单的数学游戏添加高分
- python-3.x - 来自亚马逊网站的网页抓取导致 HTTP 错误
- android - 在我的片段中,在调用 onCreateView 之前调用 onBackPressed
- android - Android Studio 遇到 android sdk 问题