在类中有一个@classmethod,在导入类时会自动调用它。我想知道传递给该方法的参数。所以我故意添加了一个代码来崩溃该函数并打印堆栈跟踪。但是,它不是打印谁调用此加载方法。
我其实想知道谁在发送参数值(具体是cuda_device)
@classmethod
def load(cls,
config: Params,
serialization_dir: str,
weights_file: str = None,
cuda_device: int = -1) -> 'Model':
who called me? #line added by me to crash and print stacktrace
File "/data/TFS/AI%20-%20Projects/MULTI_PROC/allen_ws/urls.py", line 19, in <module>
from allen_ws import ANLP_API_SB1
File "/data/TFS/AI%20-%20Projects/MULTI_PROC/allen_ws/ANLP_API_SB1.py", line 5, in <module>
from allennlp.predictors.predictor import Predictor
File "/anaconda3/envs/allennlpenv/lib/python3.6/site-packages/allennlp/predictors/__init__.py", line 9, in <module>
from allennlp.predictors.predictor import Predictor
File "/anaconda3/envs/allennlpenv/lib/python3.6/site-packages/allennlp/predictors/predictor.py", line 8, in <module>
from allennlp.models import Model
File "/anaconda3/envs/allennlpenv/lib/python3.6/site-packages/allennlp/models/__init__.py", line 6, in <module>
from allennlp.models.model import Model
File "/anaconda3/envs/allennlpenv/lib/python3.6/site-packages/allennlp/models/model.py", line 331
who called me?
在上面的堆栈跟踪模型中,__ init __ .py正在调用model.py第331行(在第331行我添加了“谁叫我”),下面第6行的模型/ __ init __ .py的内容被写入:
from allennlp.models.model import Model
这也不是用任何参数调用_load方法。 建议请问,我怎样才能找到谁传递cuda_device参数值来加载函数?
您在代码中引入了语法错误。这意味着您的类无法导入,更不用说运行了。
如果要查看运行时堆栈跟踪,则会引入运行时错误,而不是语法错误。
a = 1 / 0
应该这样做。