zoukankan      html  css  js  c++  java
  • 使用官方tfdbg对tensorflow调试

    使用官方的tfdbg进行调试,使用的方式很简单三句话完成:
    第一句声明:
    from tensorflow.python import debug as tf_debug
    第二句:对会话封装
    sess = tf_debug.LocalCLIDebugWrapperSession(sess)
    第三句:过滤(可选)
    sess.add_tensor_filter(“has_inf_or_nan”, tf_debug.has_inf_or_nan)
    如此以来,每次只要调用该会话的run()属性,就会进入debug.
    你最好把这个代码存成.py,然后在终端执行。

    具体的做法是:

     1     def train(self, dataset):
     2         log_out('****EPOCH {}****'.format(self.training_epoch), self.Log_file)
     3         self.sess.run(dataset.train_init_op) 
     4         while self.training_epoch < self.config.max_epoch:
     5             t_start = time.time()
     6             try:
     7                 ops = [self.train_op,
     8                        self.extra_update_ops,
     9                        self.merged,
    10                        self.loss,
    11                        self.logits,
    12                        self.labels,
    13                        self.accuracy]
    14                 
    15                 debug_sess = tf_debug.LocalCLIDebugWrapperSession(self.sess) 
    16                 debug_sess.run(ops)  
    17 
    18                 _, _, summary, l_out, probs, labels, acc = self.sess.run(ops, {self.is_training: True})
    19   

    在第18句之前加上15、16两句。然后在终端运行训练文件。会出现如下的画面:

    然后输入s进行单步调试。

    单步执行的话就用鼠标点击上面的“invoke stepper”,单步执行。如果不知道怎么进行单步执行,那么就输入命令“help”自己去看文档就是啦!单步就是按”s”,估计就是step的意思。

    核心的几个命令是:

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

    当执行单步调试的时候,每执行一步单步调试,箭头都会下移一行,此时箭头所指向的变量的值会在下面显示。


    参考1:https://blog.csdn.net/lucky7213/article/details/78975861

    参考2:https://blog.codescv.com/debug-tf-using-tfdbg.html

    参考3:https://tensorflow.juejin.im/programmers_guide/debugger.html

  • 相关阅读:
    怎样改动、扩展并重写Magento代码
    解决Gradle minifyEnabled无法找到错误
    使用Hadoop的MapReduce与HDFS处理数据
    cmake 学习笔记(一)
    简单的日志系统
    WebStorm 7.0 注冊码
    DOS命令大全--具体解释
    SQL SERVER之数据查询
    闰年的定义
    Javascript作用域链
  • 原文地址:https://www.cnblogs.com/yibeimingyue/p/15133557.html
Copyright © 2011-2022 走看看