Я не могу найти примеры запуска инструмента tfdbg с облачным механизмом машинного обучения. В этом сообщении показано, как обернуть сеанс tensorflow с отладчиком, но я не встречал никакого способа для запуска пакета механизма машинного обучения в режиме отладки. Кто-нибудь нашел способ сделать это?
Можно ли запустить tfdbg с учебным заданием Cloud ML Engine?
Ответы (1)
CloudML Engine не поддерживает интерактивный отладчик CLI.
Однако вы должны иметь возможность использовать автономный отладчик. То, как вы заставите его работать в вашем случае, будет зависеть от того, как структурирован ваш код.
Предположим, ваш код написан так, чтобы принимать аргумент командной строки --job-dir
. Когда вы отправите свою работу, у вас будет что-то вроде этого:
export JOB_NAME=my_job
export JOB_DIR=gs://my_bucket/$JOB_NAME
gcloud ml-engine jobs training submit ... --job-dir=$JOB_DIR ...
# Start with this code.
from tensorflow.python import debug as tfdbg
# job_dir is on GCS and is passed on the command-line if you specify
# it when submitting your training job.
dump_dir = os.path.join(job_dir, 'tfdbg_dumps')
Для получения дополнительной информации о watch_fn
см. документы.
Core TensorFlow (сеанс, созданный пользователем)
Если вы используете «основной» TensorFlow, т. е. создаете свой собственный сеанс, то замените конструкцию любых объектов tf.Session следующим образом:
sess = tfdbg.DumpingDebugWrapperSession(sess, dump_dir)
sess.run(fetches=my_fetches, feed_dict=my_feed_dict)
Дополнительную информацию см. в DumpingDebugWrapperSession.
API оценки
Если вы используете learn_runner
или Experiment
, вы можете использовать DumpingDebugHook
:
experiment = Experiment(
...,
train_monitors =[tfdbg.DumpingDebugHook(dump_dir)],
...
)
learn_runner.run(experiment)
К сожалению, я не вижу способа использовать такие фильтры, как tfdbg.has_inf_or_nan
, кроме как с LocalCLIDebugHook
. , поэтому вам просто нужно анализировать тензоры в автономном режиме.
Офлайн-анализ
Как только данные станут доступны в GCS, вы сможете изучить дампы с помощью предоставленного исполняемого модуля offline_analyzer
. Вам нужно будет выбрать один из подкаталогов запуска:
python -m tensorflow.python.debug.cli.offline_analyzer \
--dump_dir=$JOB_DIR/tfdbg_dumps/run_XXXXXXX