• aae错误


    问题:

    Traceback (most recent call last):
    File "/home/robot/miniconda3/envs/aae_py37_tf26/bin/ae_eval", line 8, in
    sys.exit(main())
    File "/home/robot/miniconda3/envs/aae_py37_tf26/lib/python3.7/site-packages/auto_pose/eval/ae_eval.py", line 253, in main
    eval_loc.match_and_eval_performance_scores(eval_args, eval_dir)
    File "/home/robot/miniconda3/envs/aae_py37_tf26/lib/python3.7/site-packages/sixd_toolkit/tools/eval_loc.py", line 358, in match_and_eval_performance_scores
    scores = calc_scores(scene_ids, obj_ids, matches, n_top)
    File "/home/robot/miniconda3/envs/aae_py37_tf26/lib/python3.7/site-packages/sixd_toolkit/tools/eval_loc.py", line 133, in calc_scores
    mean_obj_recall = float(np.mean(obj_recalls.values()).squeeze())
    File "<array_function internals>", line 6, in mean
    File "/home/robot/miniconda3/envs/aae_py37_tf26/lib/python3.7/site-packages/numpy/core/fromnumeric.py", line 3373, in mean
    out=out, **kwargs)
    File "/home/robot/miniconda3/envs/aae_py37_tf26/lib/python3.7/site-packages/numpy/core/_methods.py", line 172, in _mean
    ret = ret / rcount
    TypeError: unsupported operand type(s) for /: 'dict_values' and 'int'

    解决办法:
    原因:在python中dict_values返回一个dict_values对象,而不是列表list或者元组tuple。
    强制转换为list即可。
    mean_obj_recall = float(np.mean(obj_recalls.values()).squeeze())改为mean_obj_recall = float(np.mean(list(obj_recalls.values())).squeeze())

    Traceback (most recent call last):
    File "/home/robot/miniconda3/envs/aae_py37_tf26/bin/ae_eval", line 8, in
    sys.exit(main())
    File "/home/robot/miniconda3/envs/aae_py37_tf26/lib/python3.7/site-packages/auto_pose/eval/ae_eval.py", line 253, in main
    eval_loc.match_and_eval_performance_scores(eval_args, eval_dir)
    File "/home/robot/miniconda3/envs/aae_py37_tf26/lib/python3.7/site-packages/sixd_toolkit/tools/eval_loc.py", line 358, in match_and_eval_performance_scores
    scores = calc_scores(scene_ids, obj_ids, matches, n_top)
    File "/home/robot/miniconda3/envs/aae_py37_tf26/lib/python3.7/site-packages/sixd_toolkit/tools/eval_loc.py", line 139, in calc_scores
    mean_scene_recall = float(np.mean(scene_recalls.values()).squeeze())
    File "<array_function internals>", line 6, in mean
    File "/home/robot/miniconda3/envs/aae_py37_tf26/lib/python3.7/site-packages/numpy/core/fromnumeric.py", line 3373, in mean
    out=out, **kwargs)
    File "/home/robot/miniconda3/envs/aae_py37_tf26/lib/python3.7/site-packages/numpy/core/_methods.py", line 172, in _mean
    ret = ret / rcount
    TypeError: unsupported operand type(s) for /: 'dict_values' and 'int'
    解决办法:
    mean_scene_recall = float(np.mean(scene_recalls.values()).squeeze())改为mean_scene_recall = float(np.mean(list(scene_recalls.values())).squeeze())

  • 相关阅读:
    C语言 简单的队列(数组队列)
    C语言 复杂的栈(链表栈)
    C语言 简单的栈
    C语言 链表的使用(链表的增删查改,链表逆转,链表排序)
    C语言 常用的时间函数
    C语言 百炼成钢17
    C语言 const常量讲解
    ndroid如何监听开机广播和关机广播
    Android判断GPS是否开启和强制帮用户打开GPS
    android java.lang.IllegalArgumentException: Comparison method violates its general contract! 问题
  • 原文地址:https://www.cnblogs.com/zhengzian/p/16000625.html
Copyright © 2020-2023  润新知