Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >tensorflow学习笔记(四十三):使用 tfdbg 来 debug

tensorflow学习笔记(四十三):使用 tfdbg 来 debug

作者头像
ke1th
发布于 2018-01-02 03:17:45
发布于 2018-01-02 03:17:45
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

tensorflow学习笔记(四十三):使用 tfdbg 来 debug

由于 tensorflow 在训练的时候是在后台运行的,所以使用 python 的 debug 工具来 debug tensorflow 的执行过程是不可行的,为此,官方提供了一款debug 工具,名为 tfdbg

有很多人觉得,为了 debug tensorflow 的计算过程又要学习一个新的工具,很烦。

但其实不然,tfdbg 用起来是十分简单的。以至于简单到我们只需要增加两行代码,就可以将之前的模型改成可 debug 的。

debug 界面,也只需熟悉几个常用的命令就可以了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 第一行: 引包
from tensorflow.python import debug as tf_debug

sess = tf.Session()
# 初始化的 sess 没必要加上 debug wrapper
sess.run(tf.global_variables_initializer())

# 第二行,给 session 加个 wrapper
debug_sess = tf_debug.LocalCLIDebugWrapperSession(sess=sess)
debug_sess.run(train_op) # 用 加了 wrapper 的 session,来代替之前的 session 做训练操作

好了,这样就可以了,然后命令行执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python demo_debug.py
# 或者
python -m demo_debug

不一会,下面界面就会出现,就可以开心的 debug

Tips : debug 界面中 带 下划线的 东西 都是可以用鼠标点一下,就会触发相应操作的

关于debug 界面的命令,官方文档有详细的说明 https://www.tensorflow.org/programmers_guide/debugger#debugging_model_training_with_tfdbg

核心的几个命令是:

  • run :执行一次 debug_session.run() , 这次执行产生中间 tensor 的值都可以通过 debug 界面查看
  • exit : 退出 debug

注意事项

  • debug 的 wrapper 要加在 执行 train_op 的 session 上,因为要 debug 的是 train 过程。但是如果是想 debug input-pipeline 的话,感觉是可以将 wrapper 加在 执行 input-pipeline 的 session 上的(没有测试过)。
  • 如果代码中使用了 input-pipeline 的话, debug 非常慢(不知道原因是啥)

参考资料

https://www.tensorflow.org/programmers_guide/debugger

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Tensorflow训练网络出现了loss = NAN解决方案
注:内容来源与网络 最近用Tensorflow训练网络,在增加层数和节点之后,出现loss = NAN的情况,在网上搜寻了很多答案,最终解决了问题,在这里汇总一下。
小飞侠xp
2018/08/29
2.1K0
学习笔记TF063:TensorFlow Debugger
本文介绍了TensorFlow的发展历史、版本、安装、基础教程、高级教程、模型和调优、性能测试、C++部署、Java部署、Python部署、量化、预测、推理、可视化、TensorFlow Hub、TensorFlow Lite、TensorFlow.js、TensorFlow.Python、TensorFlow.Java、TensorFlow.C++等相关内容。
利炳根
2017/11/13
1.7K0
tensorflow出现LossTensor is inf or nan : Tensor had Inf values
之前在TensorFlow中实现不同的神经网络,作为新手,发现经常会出现计算的loss中,出现Nan值的情况,总的来说,TensorFlow中出现Nan值的情况有两种,一种是在loss中计算后得到了Nan值,另一种是在更新网络权重等等数据的时候出现了Nan值,本文接下来,首先解决计算loss中得到Nan值的问题,随后介绍更新网络时,出现Nan值的情况。
狼啸风云
2021/09/07
1.8K0
TensorFlow Debugger : Command-Line-Interface Tutorial: MNIST
This tutorial showcases the features of TensorFlow Debugger (tfdbg) command-line interface. It contains an example of how to debug a frequently encountered problem in TensorFlow model development: bad numerical values (nans and infs) causing training to fail.
CreateAMind
2018/07/25
8630
实例介绍TensorFlow的输入流水线
在训练模型时,我们首先要处理的就是训练数据的加载与预处理的问题,这里称这个过程为输入流水线(input pipelines,或输入管道,[参考:https://www.tensorflow.org/performance/datasets_performance])。在TensorFlow中,典型的输入流水线包含三个流程(ETL流程):
机器学习算法工程师
2018/07/27
1.6K0
实例介绍TensorFlow的输入流水线
TensorFlow的Debugger调试实例
之前有翻译整理过关于TensofFlow的Debugger的简单教程,具体内容见这里。这次用自己实际的例子,来简要的做个使用介绍。 首先是代码遇到了问题,训练过程中的loss不是为nan,就是为负数,让我觉得很奇怪,但是自己去检查代码又找不到问题出在哪里,这时候就想到了TensorFlow自带的Debugger。之前也有使用过,如果在没出问题的情况下,Debugger还是比较给力的。 01 用Debugger封装需要调试的Session 首先在代码的开头需要import对应的debugger模块(官方教程喜
用户1332428
2018/03/09
1.2K0
TensorFlow的Debugger调试实例
数据载入过慢?这里有一份TensorFlow加速指南
王小新 编译自 Towards Data Science 量子位 出品 | 公众号 QbitAI 机器学习算法烂熟于心,网络结构顺手拈来,但是如果数据集载入时耗费大量时间,那整个训练时间就会大大增加。
量子位
2018/03/21
2.1K0
数据载入过慢?这里有一份TensorFlow加速指南
教程 | 如何使用TensorFlow中的高级API:Estimator、Experiment和Dataset
选自Medium 作者:Peter Roelants 机器之心编译 参与:李泽南、黄小天 近日,背景调查公司 Onfido 研究主管 Peter Roelants 在 Medium 上发表了一篇题为《Higher-Level APIs in TensorFlow》的文章,通过实例详细介绍了如何使用 TensorFlow 中的高级 API(Estimator、Experiment 和 Dataset)训练模型。值得一提的是 Experiment 和 Dataset 可以独立使用。这些高级 API 已被最新发布
机器之心
2018/05/08
3.5K0
教程 | 如何使用TensorFlow中的高级API:Estimator、Experiment和Dataset
令人困惑的TensorFlow!
我叫 Jacob,是 Google AI Resident 项目的研究学者。我是在 2017 年夏天加入该项目的,尽管已经拥有了丰富的编程经验,并且对机器学习的理解也很深刻,但此前我从未使用过 TensorFlow。当时我觉得凭我的能力应该很快就能上手。但让我没想到的是,学习曲线相当的陡峭,甚至在加入该项目几个月后,我还偶尔对如何使用 TensorFlow 代码来实现想法感到困惑。我把这篇博文当作瓶中信写给过去的自己:一篇我希望在学习之初能被给予的入门介绍。我希望这篇博文也能帮助到其他人。
机器之心
2018/07/26
1.3K1
令人困惑的TensorFlow!
教程 | 如何在TensorFlow中高效使用数据集
选自TowardsDataScience 作者:Francesco Zuppichini 机器之心编译 处理并使用数据集是深度学习任务非常重要的组成部分。在本文中,作者 Francesco Zuppichini 将教你使用 TensorFlow 的内建管道向模型传递数据的方法,从此远离「feed-dict」。本文内容已更新至最新的 TensorFlow 1.5 版本。 相关代码地址:https://github.com/FrancescoSaverioZuppichini/Tensorflow-Datase
机器之心
2018/05/10
1.7K0
TensorFlow官方教程翻译:TensorFlow调试器
TensorFlow调试器是TensorFlow专门的调试器。它提供运行的TensorFlow的图其内部的结构和状态的可见性。从这种可见性中获得的洞察力有利于调试各种模型在训练和推断中出现的错误。 这个教程将展现tfdbg的命令行界面的功能,并聚焦于如何调试在TensorFLow的模型开发中经常发生的一种错误:错误数值(nan和inf)导致的训练失败。 为了观察这个问题,在没有调试器的情况下,运行下列代码: python -mtensorflow.python.debug.examples.debug_mn
用户1332428
2018/03/09
1.6K0
简明机器学习教程(二)——实践:进入Tensorflow世界
经过了一年的休整,终于博客也要恢复原先坑着的系列了,《简明机器学习教程》也会恢复更新。说实在的,第二篇的原稿我其实在第一篇之后一星期就写出来了,但是后来因为原稿遗失与学业繁忙就一直拖了下来。历经一年,我对机器学习与这系列教程又有了些新的思考,所以我决定做出些许调整。首先,本系列不再单独分理论、实践篇,而是采用交织在一起的形式。其次,将matlab更换为tensorflow(python)。教程的定位依旧是面向初学者,所以会加入大篇幅的前置介绍。这篇就是为了之后内容而对tensorflow进行先行的介绍。
KAAAsS
2022/01/14
1K0
简明机器学习教程(二)——实践:进入Tensorflow世界
如何在TensorFlow上高效地使用Dataset
【导读】近日,机器学习工程师Francesco Zuppichini发表一篇教程,讲解了在TensorFlow中高效地输入数据集的方法,作者首先抛弃了feed-dict(它太慢了),然后介绍Tenso
WZEARW
2018/04/13
10.5K0
如何在TensorFlow上高效地使用Dataset
深度学习_1_Tensorflow_1
# 深度学习 # 图像识别,自然语言处理 # 机器学习 深度学习 # 分类:神经网络(简单) 神经网络(深度) # 回归 图像:卷积神经网络 # 自然语言处理:循环神经网络 # cpu:运行操作系统,处理业务,计算能力不是特别突出 # gpu:专门为计算设计的 import tensorflow as tf a = tf.constant(5.0) b = tf.
Dean0731
2020/05/08
5800
tensorflow学习笔记(二十一):tensorflow可视化
tensorflow的可视化是使用summary和tensorboard合作完成的.
ke1th
2019/05/26
5190
tensorflow学习笔记(十九):分布式Tensorflow
最近在学习怎么分布式Tensorflow训练深度学习模型,看官网教程看的云里雾里,最终结合着其它资料,终于对分布式Tensorflow有了些初步了解.
ke1th
2019/05/26
5860
tensorflow学习笔记(三十六):learning rate decay
本文介绍了tensorflow中关于学习率衰减的API,包括使用方法以及示例代码。通过使用exponential\_decay函数实现学习率的逐渐衰减,可以更有效地提高模型的训练效果。同时,还介绍了在训练过程中如何实现学习率衰减的方法。
ke1th
2018/01/02
1.7K0
谷歌首届TensorFlow开发者峰会 重磅发布TensorFlow 1.0 | 附主题演讲视频
大数据文摘作品,转载要求见文末 作者 | Amy McDonald Sandjideh 编译团队 | 姜范波,Aileen 首次年度TensorFlow开发者峰会今天在山景城召开。全球直播向全世界宣布
大数据文摘
2018/05/25
6790
tensorflow学习笔记(四十二):输入流水线
ensorflow 如何读取数据 tensorflow有三种把数据放入计算图中的方式: 通过feed_dict 通过文件名读取数据:一个输入流水线 在计算图的开始部分从文件中读取数据 把数据预加载到一
ke1th
2018/01/02
1.3K0
tensorflow学习笔记(五):变量保存与导入
The Saver class adds ops to save and restore variables to and from checkpoints. It also provides convenience methods to run these ops.来自官网的介绍。
ke1th
2019/05/26
7230
推荐阅读
相关推荐
Tensorflow训练网络出现了loss = NAN解决方案
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验