How to use tensorflow debugging tool tfdbg on tf.estimator in Tensorflow?

纵饮孤独 提交于 2019-12-04 19:27:41


I am working with Tensorflow version 1.4, and I want to debug my train() function.

In this link

there is a way to do it for tf.contrib.learn Estimators, but I can not find a way to adapt it to the (new in version 1.4) tf.estimator.

This is what I have tried:

from tensorflow.python import debug as tf_debug

# Create an estimator
my_estimator = tf.estimator.Estimator(model_fn=model_fn, 

# Create a LocalCLIDebugHook and use it as a hook when calling train().
hooks = [tf_debug.LocalCLIDebugHook()]

# Train
my_estimator.train(input_fn=train_input_fn, steps=10,hooks=hooks)

But I am running into this error:

> --------------------------------------------------------------------------- error 
Traceback (most recent call
> last) <ipython-input-14-71325f3c8f14> in <module>()
>       7 
>       8 # Train
> ----> 9 my_estimator.train(input_fn=train_input_fn, steps=10,hooks=hooks)
> /root/anaconda3/lib/python3.6/site-packages/tensorflow/python/debug/cli/
> in _screen_launch(self, enable_mouse_on_start)
>     443 
>     444     curses.noecho()
> --> 445     curses.cbreak()
>     446     self._stdscr.keypad(1)
>     447 
> error: cbreak() returned ERR

Can someone point me in the right direction?


The default is set for working in command line, if you use IDE such as Pycharm the simplest solution is to change UI type.


hooks = [tf_debug.LocalCLIDebugHook(ui_type="readline")]

instead of:

hooks = [tf_debug.LocalCLIDebugHook()]      

In case you use Pycharm, add to the configuration parameters --debug