类方法的 statcktrace 未在 python 中打印
statcktrace of classmethod not getting printed in python
class 中有一个 @class 方法,在导入 class 时会自动调用该方法。我想知道传递给该方法的参数。所以我特意添加了一段代码来使该函数崩溃并打印堆栈跟踪。但是,它不会打印谁在调用此加载方法。
其实我想知道是谁在发送参数值(具体是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?
在上面的堆栈跟踪中 models/__ init __ .py 正在调用 model.py 行 331(在第 331 行我添加了 "who called me"),models/__ init 的内容__ .py 在第 6 行下面写着:
from allennlp.models.model import Model
这也不是使用任何参数调用 _load 方法。
请提出建议,我如何找到谁将 cuda_device 参数值传递给加载函数?
您在代码中引入了语法错误。这意味着您的 class 无法导入,更不用说 运行.
如果您想查看 运行 时间堆栈跟踪,请引入 运行 时间错误,而不是语法错误。
a = 1 / 0
应该做。
class 中有一个 @class 方法,在导入 class 时会自动调用该方法。我想知道传递给该方法的参数。所以我特意添加了一段代码来使该函数崩溃并打印堆栈跟踪。但是,它不会打印谁在调用此加载方法。
其实我想知道是谁在发送参数值(具体是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?
在上面的堆栈跟踪中 models/__ init __ .py 正在调用 model.py 行 331(在第 331 行我添加了 "who called me"),models/__ init 的内容__ .py 在第 6 行下面写着:
from allennlp.models.model import Model
这也不是使用任何参数调用 _load 方法。
请提出建议,我如何找到谁将 cuda_device 参数值传递给加载函数?
您在代码中引入了语法错误。这意味着您的 class 无法导入,更不用说 运行.
如果您想查看 运行 时间堆栈跟踪,请引入 运行 时间错误,而不是语法错误。
a = 1 / 0
应该做。