tfdbg

前段时间debug de到呼天抢地,借此机会认识了一下神秘的tfdbg。

作为一个1/32吊子的程序员,没有比print更适合我的debugging工具,所以tensorflow用到今天我都没试过tfdbg,让它一直安稳待在我那广袤无垠的技术盲区里。

直到我前段时间遭遇那个神秘bug,需要check两个局部变量的值,而print对此无能为力,所以我只能把主意打到神秘的tfdbg头上。既然是人家量身打造的debugging工具,那还不指哪打哪,什么变量值都给你掘地三尺刨出来。

即便那个官网GUI显示一副机器语言的蛋疼样子,我还是怀着巨大的期待开始了学习。But, where is breakpoint setting? where is step run?满头雾水地找了半天,naive!Once again!我又忘记了tf先构图再计算的机制,这个机制决定了tfdbg就不是general的debugging工具。

到sess.run()这一步之前,前面的程序都是在构图,你在构图阶段设断点?step run?要看什么?tensorboard一键就把图给你画得明明白白了。debugging无非要看中间值,但是tf程序在sess.run()之前,那是没有中间值出来的。所以tfdbg的运行命令,只有一个>run,run一次跑一个迭代。

可这一下一个迭代run完了,我还怎么看早已经注销的局部变量呢?这和我在sess.run()后面跟一句print有什么区别呢?区别嘛还是有的,tfdbg能一次给你列出运算路径上所有tensor的值来,用print要实现这点,还得搞清楚运算路径上的所有tensor且手动把它们列出来。所以,有区别,但是没用。

 

转载于:https://www.cnblogs.com/sylvialmy/p/11274897.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值