Как использовать отладчик tenorboard с datalab, который использует tf.estimator на облачной платформе Google

Когда я запускаю tenorboard через datalab, он использует синтаксис Google, описанный здесь. В этом документе упоминаются только начало, остановка и список. Однако есть панель отладчика, которую я не могу использовать.

В документе Этот описывается, как использовать отладчик тензорной доски с tf.estimator, но он использует другой синтаксис.

Есть ли способ смешать эти два, чтобы отладчик можно было использовать с datalab?

Udacity Nanodegree Capstone Project: Классификатор пород собак
Udacity Nanodegree Capstone Project: Классификатор пород собак
Вы можете ознакомиться со скриптами проекта и данными на github .
0
0
264
1

Ответы 1

Я не думаю, что вы можете запустить tfdbg в datalab. Вы можете взять код и запустить его на консоли, например, с помощью этого гид:

  1. Я использую записную книжку datalab, в которой используются файлы model.py и task.py. Мой код изначально был смоделирован после этого файл.

  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, сделайте следующее: (я использую анаконду)

  1. Откройте среду Python 2.7 с помощью anaconda

    $ . ~/bin/setenv-anaconda2.sh
    
  2. Активируйте среду tenorflow 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.

Другие вопросы по теме