Tensorflow之调试(Debug) && tf.py_func()

Posted 小河沟大河沟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tensorflow之调试(Debug) && tf.py_func()相关的知识,希望对你有一定的参考价值。

几种常用方法:

1.通过Session.run()获取变量的值

2.利用Tensorboard查看一些可视化统计

3.使用tf.Print()和tf.Assert()打印变量

4.使用Python的debug工具: ipdb, pudb

5.利用tf.py_func()向图中插入自定义的打印代码, tdb

6.使用官方debug工具: tfdbg : https://tensorflow.google.cn/programmers_guide/debugger

  • 注意:TensorFlow 调试程序使用基于 curses 的文本界面。在 Mac OS X 上,ncurses 库是必需的,而且可以使用 brew install homebrew/dupes/ncurses 进行安装。在 Windows 上,curses 并没有得到同样的支持,因此基于 readline 的界面可以与 tfdbg 配合使用(具体方法是使用 pip 安装 pyreadline)。如果您使用的是 Anaconda3,则可以使用 "C:\\Program Files\\Anaconda3\\Scripts\\pip.exe" install pyreadline 等命令进行安装。您可以在此处下载非官方 Windows curses 软件包,然后使用 pip install <your_version>.whl 进行安装;不过,Windows 上的 curses 可能无法像 Linux 或 Mac 上的 curses 一样稳定地运行。
  • 一个很有用的函数 tf.py_func

它的具体功能描述是包装一个普通的 Python 函数,这个函数接受 numpy 的数组作为输入和输出,让这个函数可以作为 TensorFlow 计算图上的计算节点 OP 来使用。

py_func(
    func,
    inp,
    Tout,
    stateful=True,
    name=None
) 

参数:

    func: 一个 Python 函数, 它接受 NumPy 数组作为输入和输出,并且数组的类型和大小必须和输入和输出用来衔接的 Tensor 大小和数据类型相匹配.
    inp: 输入的 Tensor 列表.
    Tout: 输出 Tensor 数据类型的列表或元祖.
    stateful: 状态,布尔值.
    name: 节点 OP 的名称.

 

以上是关于Tensorflow之调试(Debug) && tf.py_func()的主要内容,如果未能解决你的问题,请参考以下文章

编程55--代码share&debug14Tensorflow,Pytorch 出现 ‘Tensor‘ object is not callable解决办法

spark远程debug之调试spark on yarn 程序

Node2-6环境&调试----debug

Django之Django debug toolbar调试工具

Pycharm远程调试之ssh remote debug(二)

调试Idea如何远程debug之SpringBoot jar包启动