2016-10-06 8 views
2

私はGoogleのクラウドマシンベータ学習を実行しており、テンソルフローでハイパーチューン設定を使用しています。Googleクラウドマシン学習ハイパーパラメータチューニング回避Nans

ハイパーパラメータチューニングのサブランの一部では、NaNになる損失があります。計算がクラッシュし、ハイパーパラメータチューニングジョブが停止します。

Error reported to Coordinator: <class 'tensorflow.python.framework.errors.InvalidArgumentError'>, 
Nan in summary histogram for: softmax_linear/HistogramSummary [[Node: softmax_linear/HistogramSummary = HistogramSummary[T=DT_FLOAT, 
_device="/job:master/replica:0/task:0/cpu:0"] 
(softmax_linear/HistogramSummary/tag, softmax_linear/softmax_linear)]] 
Caused by op u'softmax_linear/HistogramSummary', defined at: File 
"/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main 

これらを処理する標準的な方法は何ですか。損失機能を保護すべきですか?

おかげ

+0

[tf.add_check_numerics](https://www.tensorflow.org/versions/r0.11/api_docs/python/control_flow_ops.html#add_check_numerics_ops)を使用して、計算が不安定になる場所を特定しましたか? –

+0

2つの質問:(1)はトレーニングの最初の部分の損失の罰金ですが、失敗しているハイパーパラメータの正確な同じ設定についてはちょうど "最終的に" Nan(2)に行く、モデルはいつか収束する、 NaNに? – rhaertel80

+0

ハイパーパラメータによっては時々NaNに行きます。基本的に、learning_rateが大きすぎる場合、またはフィーチャの数が多すぎる場合私の現在の対応策は、ハイパーパラメータチューニングの探索範囲を制限することです。 – MathiasOrtner

答えて

1

あなたはNaNをチェックすることによって損失関数を保護する必要があります。プログラムによってスローされたクラッシュまたは例外は、クラウドMLによって試行の失敗として処理され、十分な試行が失敗した場合、そのジョブ全体が失敗します。

ハイパーパラメータのサマリーを設定せずにトライアルが正常に終了すると、試行は実行不可能とみなされ、同様のハイパーパラメータは再試行される可能性が低くなりますが、エラーにはなりません。

+0

答えにChrisに感謝します。私はそれをできるだけ早く試みます。 – MathiasOrtner