Jia*_*ang 6 python pdb jupyter jupyter-notebook
pdb我的目标是使用 JupyterLab或在 JupyterLab 中运行一些 python 脚本ipdb来捕获我的调试历史记录。
set_trace()我首先在我的 python 脚本中插入:
import torch
from IPython.core.debugger import set_trace
def train_batch(model_instance, inputs_source, labels_source, inputs_target, optimizer, args):
inputs = torch.cat((inputs_source, inputs_target), dim=0)
total_loss, train_stats = model_instance.get_loss(inputs, labels_source)
total_loss[args.train_loss].backward()
set_trace() # insert breakpoint
optimizer.step()
return train_stats
Run Code Online (Sandbox Code Playgroud)
然后我在 JupyterLab 中运行此脚本:
!python ./trainer/train.py \
--base_config ./config/sgd_vannila_0.001.yml \
--dataset Office-Home \
--class_num 50 \
--src_address ./data/office-home/Art.txt \
--tgt_address ./data/office-home/Clipart.txt \
--name transfer.debug.rand_noise \
--train_steps 10000 \
--seed 2 \
--filter_classes=0,50 \
--eval_interval 50
Run Code Online (Sandbox Code Playgroud)
执行在断点处停止,但不提供交互框来提示任何ipdb指令。pdbJupyter Notebook 也发生同样的情况。
我尝试过的事情:
版本信息:
我认为神奇的功能 %debug正是您所寻找的。尝试将下面的代码片段插入 jupyterlab 单元中并运行它:
def foo(a,b):
return(a+b)
c = foo(a=1, b=str(1))
Run Code Online (Sandbox Code Playgroud)
这就提出了TypeError:
现在,如果您在下面插入一个单元格,输入%debug并运行它,您将得到以下结果:
现在您可以运行任何ipdb 命令,例如h(elp):
希望这可以帮助)!
编辑:
OP 提供了以下澄清:
我实际上正在寻找的是一种主动插入断点的方法,即即使没有任何错误,如何插入断点。
from IPython.core.debugger import set_trace在这种情况下,您可以与 ipdb 命令结合使用bt。这是一个例子:
from IPython.core.debugger import set_trace
def foo(a,b):
return(a+b)
set_trace()
c = foo(a=1, b=1)
Run Code Online (Sandbox Code Playgroud)
这会触发以下事件:
现在,运行命令bt,我希望您能得到您想要的东西。无论如何,我希望这能回答“没有错误的断点”部分。我不会包含 running 的全部输出bt,因为它的数量相当多。?bt但以下是运行以获得有关该特定命令的更多帮助的输出:
小智 1
您可以使用 %run magic 命令来完成此操作。
%run ./trainer/train.py \
--base_config ./config/sgd_vannila_0.001.yml \
--dataset Office-Home \
--class_num 50 \
--src_address ./data/office-home/Art.txt \
--tgt_address ./data/office-home/Clipart.txt \
--name transfer.debug.rand_noise \
--train_steps 10000 \
--seed 2 \
--filter_classes=0,50 \
--eval_interval 50
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2011 次 |
| 最近记录: |