Tensorflow调试器无法在Windows 10上运行

时间:2017-02-28 19:41:15

标签: tensorflow

我的代码非常简单:

import tensorflow as tf
import numpy as np
from tensorflow.python import debug as tf_debug

with tf.name_scope("multiplication"):
    a = tf.placeholder(tf.float32)
    b = tf.placeholder(tf.float32)
    c = tf.div(a, b, name="mult")

    with tf.Session() as session:
        session = tf_debug.LocalCLIDebugWrapperSession(session)
        session.add_tensor_filter("has_inf_or_nan", tf_debug.has_inf_or_nan)
        session.run([ c],feed_dict={a:100, b:10})

但是当我跑的时候:

>python test.py --debug 
... 
ImportError: No module named '_curses' 
... 
ImportError: No module named 'readline'`

我在网上查了一下,发现Windows 10不支持“_curses”。这是否意味着我不能在Windows 10上使用Tensorflow Debugger?

4 个答案:

答案 0 :(得分:5)

根据:https://www.tensorflow.org/programmers_guide/debugger 你必须在cmd中写下以下内容:

pip install pyreadline

答案 1 :(得分:0)

不是答案,而是剪切并粘贴了上面列出的代码,并从ui_factory.py获得了不同的错误,如下所示:

    ValueError: Exhausted all fallback ui_types.

在Windows 10上运行Python 3.5.3,numpy 1.12.0和TensorFlow 1.0.0。

答案 2 :(得分:0)

TensorFlow调试器(tfdbg)在版本1.0.x中不能完全正常运行。 TensorFlow 1.1.0rc0刚刚问世。请试一试:

pip.exe install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.1.0rc0-cp35-cp35m-win_amd64.whl

如果仍有问题,请在https://github.com/tensorflow/tensorflow/issues

报告

此外,或许值得指出以下内容:

  1. tfdbg的命令行界面在Windows和Linux / Mac之间是不同的。 Windows没有官方curses支持,因此它使用readline界面。
  2. 由于1.,readline是tfdbg在Windows上的必需依赖项:

    pip.exe安装pyreadline

答案 3 :(得分:0)

我刚刚在Windows Server 2016计算机上验证了TensorFlow 1.1.0。 tfdbg有效。以下是我一步一步做的事情

  1. 使用python版本3.5安装Anaconda 3
  2. 以管理员身份打开命令窗口。
  3. " C:\ Program Files \ Anaconda3 \ Scripts \ pip.exe"安装pyreadline
  4. " C:\ Program Files \ Anaconda3 \ Scripts \ pip.exe"安装--ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.1.0-cp35-cp35m-win_amd64.whl
  5. 使用" C:\ Program Files \ Anaconda3 \ python.exe打开Python shell"
  6. 在Python shell中,输入以下简单张量流代码以启动TFDBG终端。
  7. import tensorflow as tf
    from tensorflow.python import debug as tf_debug
    a = tf.Variable(42.0, name="a")
    sess = tf.Session()
    sess = tf_debug.LocalCLIDebugWrapperSession(sess)
    sess.run(a.initializer)