代码之家  ›  专栏  ›  技术社区  ›  Mona Jalal

sympy中的raise TypeError(“非实%s”%me)比较无效

  •  0
  • Mona Jalal  · 技术社区  · 4 年前

    我得到了这个与症状有关的比较错误。你知道我怎么修吗?原始回购协议中的作者似乎没有面临这一问题。我看到了其中一个pkl文件,即001。pkl,y2d是虚构的(不知道为什么),等于 1.05147176800692e-6 + 3.72470439655723*I .

    我正在运行以下代码: https://github.com/DirtyHarryLYL/DJ-RN/blob/master/script/generate_3D_obj_GT.py

    (djrn) [jalal@goku DJ-RN-dawnlight]$ python script/generate_3D_obj_GT.py --smplx_path ../../data/smplify-x/models_smplx_v1_1/models/smplx/ --res ../../data/smplify-x/ride_bike/step6_train/ --img_path ../../data/smplify-x/ride_bike/step6_data/images --save_obj_path ../../data/smplify-x/ride_bike/step6_obj
    37633
    ../../data/smplify-x/ride_bike/step6_train/results/HICO_train2015_00004909/000.pkl
    y2d 39.9603816459773, obox [9, -85, 93, 5]
    y2d -39.9603816587270, obox [9, -85, 93, 5]
    y2d 49.9684719529012, obox [9, -85, 93, 5]
    y2d -49.9684719656511, obox [9, -85, 93, 5]
    ../../data/smplify-x/ride_bike/step6_train/results/HICO_train2015_00004909/001.pkl
    y2d 1.05147176800692e-6 + 3.72470439655723*I, obox [-231, -89, -138, 89]
    Traceback (most recent call last):
      File "script/generate_3D_obj_GT.py", line 95, in <module>
        otri, obj_vertexs = get_param(result, hbox, obox, htri, img, radius, gamma_min, gamma_max)      
      File "/scratch3/research/code/DJ-RN-dawnlight/script/generate_utils.py", line 372, in get_param
        if (((y2D >= obox[1]) & (y2D <= obox[3])) | ((y2D <= obox[1]) & (y2D >= obox[3]))):
      File "/scratch3/venv/djrn/lib/python3.8/site-packages/sympy/core/expr.py", line 393, in __ge__
        return self._cmp(other, ">=", GreaterThan)
      File "/scratch3/venv/djrn/lib/python3.8/site-packages/sympy/core/expr.py", line 346, in _cmp
        raise TypeError("Invalid comparison of non-real %s" % me)
    TypeError: Invalid comparison of non-real 1.05147176800692e-6 + 3.72470439655723*I
    
    0 回复  |  直到 4 年前
        1
  •  1
  •   smichr    4 年前

    根本问题是“y2d是虚构的”;SymPy只是通过拒绝尝试进行涉及非零虚部数字的比较来提醒你这一事实。只有实数才能用于比较。(通过引发错误,它会让您知道数据集有问题。)

    推荐文章