0

クラウドMLエンジンで実行されているtfdbgツールの例は見つかりません。このpostは、テンソルフローセッションをデバッガでラップする方法を示していますが、デバッグモードでMLエンジンパッケージを実行する方法はありませんでした。誰かがこれを行う方法を見つけましたか?tfdbgをCloud ML Engineトレーニングジョブで実行できますか?

答えて

2

CloudMLエンジンは、対話型CLIデバッガをサポートしていません。

ただし、offline debuggerを使用することができます。あなたのケースでどのように動作させるかは、コードの構造に依存します。

コードが--job-dirコマンドライン引数を受け入れるように書かれているとします。あなたの仕事を提出するときは、このようなものがあります:watch_fn詳細について

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') 

を、docsを参照してください。

コアTensorFlow(ユーザーが作成したセッション)

あなたがあなた自身のセッションを作成、すなわち、「コア」TensorFlow使用している場合は、そのような任意のtf.Sessionオブジェクトの構築を置き換えます:

sess = tfdbg.DumpingDebugWrapperSession(sess, dump_dir) 
sess.run(fetches=my_fetches, feed_dict=my_feed_dict) 

詳細はDumpingDebugWrapperSession docsを参照してください。

見積もりの​​API

あなたがlearn_runnerExperimentを使用している場合は、DumpingDebugHook使用することができます。

experiment = Experiment(
    ..., 
    train_monitors =[tfdbg.DumpingDebugHook(dump_dir)], 
    ... 
) 
learn_runner.run(experiment) 

残念ながら、私は、LocalCLIDebugHookを除いて、このようなtfdbg.has_inf_or_nanなどのフィルタを使用する方法を見ることができませんあなたはテンソルをオフラインで分析するだけです。

オフライン解析

データがGCSで利用可能になったら、提供offline_analyzer実行可能モジュールを使用してダンプを調べることができます。

python -m tensorflow.python.debug.cli.offline_analyzer \ 
    --dump_dir=$JOB_DIR/tfdbg_dumps/run_XXXXXXX 
+0

sess.runの代わりにlearn_runnerを使用して実験を行った場合、どのように修正されますか?これは別の質問の価値があるのでしょうか、どちらの場合もカバーするためにここで答えを更新するのが最善でしょうか? – reese0106

+0

また、損失がNaNに分岐する理由をデバッグする場合は、watch_fnの例はtfdbg.has_inf_or_nanですか? – reese0106

+0

答えを更新しました。 – rhaertel80

関連する問題