如何将tensorboard调试器与Datalab一起使用,该工具在Google Cloud Platform上使用tf.estimator

时间:2018-08-09 22:06:49

标签: tensorflow google-cloud-platform tensorboard google-cloud-datalab

当我通过datalab启动tensorboard时,它使用的Google语法为here。本文档仅提及开始,停止和列出。但是,有一个调试器窗格,我无法使用。

This文档介绍了如何将tensorboard调试器与tf.estimator一起使用,但是它使用了不同的语法。

是否有某种方式将两者融合在一起,以便调试器可与datalab一起使用?

1 个答案:

答案 0 :(得分:1)

我认为您不能在datalab中运行tfdbg。您可以使用以下guide来获取代码并在控制台上运行它:

  1. 我正在使用使用model.py和task.py的datalab笔记本。我的代码最初是在此file之后建模的。

  2. 按照上述指南中的说明对model.py代码进行此更改。

    from tensorflow.python import debug as tf_debug
    # for debugging
    hooks = [tf_debug.LocalCLIDebugHook()]
    

然后在train_and_evaluate(args)例程中添加对EvalSpec()调用的参数列表中的钩子的引用。像这样:

    # .. also need an EvalSpec which controls the evaluation and
    # the checkpointing of the model since they happen at the same time
    eval_spec = tf.estimator.EvalSpec(
        input_fn = read_dataset(
            args['eval_data_paths'],
            batch_size = 10000,  # original 10000
            mode = tf.estimator.ModeKeys.EVAL),
        steps=None, # evals on 100 batches
        start_delay_secs = args['eval_delay_secs'], # start evaluating after N secoonds. 
        throttle_secs = args['min_eval_frequency'], # eval no more than every N seconds.
        exporters = exporter,# how to export the model for production.
        hooks = hooks) # for the debugger 

然后使用您首选的虚拟python环境,执行以下操作:(我正在使用anaconda)

  1. 使用anaconda打开python 2.7环境

    $ . ~/bin/setenv-anaconda2.sh
    
  2. 激活tensorflow python2.7 anaconda环境

    $ conda activate tensorflow
    
  3. 获取gcloud环境

    $ . ~/progs/datalab-notebooks/bin/setenv_google.sh
    
  4. 对于此模型,设置python路径以查找模块

    cd ~/progs/datalab-notebooks/tf-debug
    export PYTHONPATH=${PYTHONPATH}:${PWD}/taxisimple
    

然后进行训练:--train_steps = 1000。似乎是最大步数。

python -m trainer.task \
   --train_data_paths="${PWD}/taxi-train*" \
   --eval_data_paths=${PWD}/taxi-valid.csv  \
   --output_dir=${PWD}/taxi_trained \
   --train_steps=1000 --job-dir=./tmp

这将给您一个tftdbg提示。在这里,您可以使用tfdbg探索模型。