在 sympy 中提高 TypeError("Invalid comparison of non-real %s" % me)

raise TypeError("Invalid comparison of non-real %s" % me) in sympy

我遇到了与 sympy 相关的比较错误。你知道我该如何解决吗?原始回购协议中的作者似乎没有面对它。我看到对于其中一个 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

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