我在单个单元格中的google colab中运行以下代码段:
%debug
# Create tensors of shape (10, 3) and (10, 2).
x = torch.randn(10, 3)
y = torch.randn(10, 2)
# Build a fully connected layer.
linear = nn.Linear(3, 2)
print ('w: ', linear.weight)
print ('b: ', linear.bias)
我希望调试一段代码(逐行进行调试)以了解发生了什么。我希望进入函数nn.Linear。
但是,当我逐步执行时,它根本不会进入该功能。有没有一种方法可以逐步解决nn.Linear?另外,我如何在nn.Linear中设置断点?此外,我也希望逐行一步一步地介绍代码段。但是,如图所示,step命令会自动执行并执行print语句。
答案 0 :(得分:1)
从Python 3.7开始,您可以使用内置的breakpoint function。如果不可用,则可以改用import pdb; pdb.set_trace()
。
如果要执行下一行,可以尝试使用n
(下一个)代替s
(步骤)。
答案 1 :(得分:0)
您可以使用内置的断点函数在nn.Linear中设置断点。
import sys; sys.breakpoint()
还有更多可用的命令可用于交互式调试,
Command Description
list Show the current location in the file
h(elp) Show a list of commands, or find help on a specific command
q(uit) Quit the debugger and the program
c(ontinue) Quit the debugger, continue in the program
n(ext) Go to the next step of the program
<enter> Repeat the previous command
p(rint) Print variables
s(tep) Step into a subroutine
r(eturn) Return out of a subroutine
答案 2 :(得分:0)
根据以下命令使用pdb内置断点函数:
import pdb;
pdb.set_trace()