在pytorch编程中如何进行调试
1. 经典有效的方法 print()
哪些变量需要记录,就使用print()进行输出,可以在输出时候添加特殊标志,以方便在终端查看。这个方法感觉还是很好用的
2. 使用ipdb进行调试
当有编辑器的时候,可以使用编辑器的调试,但是感觉这个相对简单易用一点
import ipdb
# 下面这段话相当于一个段点,程序运行到下面这句话的时候就会暂停
# 也就是说,该行以上的变量都可以查看。
# 假设下面的代码位于第10行,
# 那么第一行到第9行中出现的变量都是可以查看的。
ipdb.set_trace()
当程序运行到这里时候
在终端中会出现ipdb>
-
可以输入变量名,此时可以理解为一个交互式的python终端,也可以对变量进行操作查看结果
-
也可以进行下一步操作
n # next执行下一步
退出debug模式则是q。
s # step的缩写,此处进入sum函数内部
u # up的缩写,调回上一层的调用
down # down的缩写,跳到调用的下一层
return # 继续执行到函数返回,返回15即为sum的结果
ipdb的小技巧:
tab
键能自动补齐,和IPyhton中类似j(ump)
能够跳过中间某些行代码的执行- 可以直接在ipdb中改变变量值,再继续执行代码也是按照修改后的变量运算,
h(elp)
能够查看调试命令的用法,如h h查看help命令的用法等。
3.log,TensorBoard等
有很多调试方法,都可以尝试。
不管黑猫白猫,可以抓到老鼠就是好猫。
愿大家都可以代码不报错 😃
参考:
https://blog.youkuaiyun.com/qq_35812205/article/details/121889270