在我的模拟中,当达到for循环中的函数表达式时:
d1ToUse = d2Weights[:,i] > 1e-9
有时会抛出警告:
RuntimeWarning: invalid value encountered in greater...
每当抛出此警告时,我想打印“较大”的值,以便检查可变权重并消除问题
对于此警告的某些实例,d2Weights变量是一个空列表。我已尝试通过以下任何过滤器将这些实例化从分析中删除:
if d2Weights[:,i] == []:
continue
if np.any(d2Weights[:, i] == None):
continue
if np.any(d2Weights[:, i] == np.nan):
continue
if sum(d2Weights[d1ToUse, i]) == 0.0:
continue
if d2Weights[d1ToUse, i] is None:
continue
if np.any(d2Weights[d1ToUse, i] == None):
continue
if np.any(d2Weights[d1ToUse, i] == np.nan):
continue
由于问题仍然存在,我希望看到“更大”的值如何检查它并确定根本原因
我不想抑制此警告,因为无论何时抛出它,我的模拟行为都会异常
如有任何建议,我将不胜感激
编辑:
d2Weights是带有浮点数的numpy数组。它使用RBF核存储循环加权平均的权重
您可以使用警告库: https://docs.python.org/3/library/warnings.htmlhttps://www.geeksforgeeks.org/warnings-in-python/
警告过滤器控制警告是被忽略、显示还是变成错误(引发异常)这样您就可以将警告变成错误,并将代码中的关键行放入try块中。然后,您可以使用except块找出问题的原因,并打印出“较大”值。 https://www.w3schools.com/python/python_try_except.asp
希望这有帮助。我实际上是python的初学者,但本周我遇到了类似的问题
相关问题 更多 >
编程相关推荐