Когда я запускаю tenorboard через datalab, он использует синтаксис Google, описанный здесь. В этом документе упоминаются только начало, остановка и список. Однако есть панель отладчика, которую я не могу использовать.
В документе Этот описывается, как использовать отладчик тензорной доски с tf.estimator, но он использует другой синтаксис.
Есть ли способ смешать эти два, чтобы отладчик можно было использовать с datalab?
Я не думаю, что вы можете запустить tfdbg в datalab. Вы можете взять код и запустить его на консоли, например, с помощью этого гид:
Я использую записную книжку datalab, в которой используются файлы model.py и task.py. Мой код изначально был смоделирован после этого файл.
Внесите это изменение в код 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, сделайте следующее: (я использую анаконду)
Откройте среду Python 2.7 с помощью anaconda
$ . ~/bin/setenv-anaconda2.sh
Активируйте среду tenorflow python2.7 anaconda
$ conda activate tensorflow
получить среду gcloud
$ . ~/progs/datalab-notebooks/bin/setenv_google.sh
Для этой модели установите путь 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.