私は数日からこの問題に直面しています。私はどこでミスをしているのか分かりません。私のコードは長いですし、ここで、ここでテンソルを使ってニューラルネットワークを訓練した後に生成されるNans
をすべてを再現することができませんでした最初のケースでの結果である:
Accuracy: 0.1071 Error: 1.45003
Accuracy: 0.5149 Error: 0.259084
Accuracy: 0.7199 Error: 0.197301
Accuracy: 0.7934 Error: 0.138881
Accuracy: 0.8137 Error: 0.136115
Accuracy: 0.8501 Error: 0.15382
Accuracy: 0.8642 Error: 0.100813
Accuracy: 0.8761 Error: 0.0882854
Accuracy: 0.882 Error: 0.0874575
Accuracy: 0.8861 Error: 0.0629579
Accuracy: 0.8912 Error: 0.101606
Accuracy: 0.8939 Error: 0.0744626
Accuracy: 0.8975 Error: 0.0775732
Accuracy: 0.8957 Error: 0.0909776
Accuracy: 0.9002 Error: 0.0799101
Accuracy: 0.9034 Error: 0.0621196
Accuracy: 0.9004 Error: 0.0752576
Accuracy: 0.9068 Error: 0.0531508
Accuracy: 0.905 Error: 0.0699344
Accuracy: 0.8941 Error: nan
Accuracy: 0.893 Error: nan
Accuracy: 0.893 Error: nan
私はいろいろなことを試してみましたが、私は間違いを犯していた場所を把握することができませんでした。私はすべてオプティマイザ を試してみました
self._error = -tf.reduce_sum(y*pred+ 1e-9))
self._error = -tf.reduce_sum(y*pred)
self._error = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=pred, labels=y))
self._error = tf.reduce_mean(-tf.reduce_sum(y * tf.log(pred+1e-8),reduction_indices=1))
out = tf.nn.softmax_cross_entropy_with_logits(logits = pred, labels=y)
self._error= tf.reduce_mean(out)
異なるものに
1)を変更し、クロスエントロピーの計算は - SGD - アダム - adagrad - 提供rmsprop
私が使用している両方のデフォルトのオプティマイザテンソルフローによって測定し、異なるパラメータを手動で適用した。私は両方の1.0と0.0
ウェイトを試してみました
:指すように私も0.00001
バイアスほどの小さな学習レートでチェックしてtf.truncated_normal_initializer(STDDEV = 0.1で初期化
、 DTYPE = tf.float32)
ネットワーク:
FC784 - FC256 - FC128 - FC10
私はそれの別の変形も試みました。
活性化機能:
- Relu - TANH - 漏洩reluのtf.maximum(入力、0.1 *入力)
データ:255でそれを除算することにより正規化
MNISTデータセットデータセットはKerasのものです。
私はこの質問が様々なstackoverflowの質問で尋ねられていることを知っています。
いつかのデバイスは何らかの理由で 'None'答えを返しますが、これは正常ですが、これをどう扱うべきですか? NANは "まだ準備されていません"、 "リソースはビジー"、 "値はオーバーフローしました"などです。すべてのリソースへのアクセスには 'delay'があります。コンピュータ上で' 1/CPU_CLOCK'遅延があります。 ** 0 /なし= NAN ** – dsgdfg
私は3〜4システムでコードを実行しました。私はCPUとGPUの両方を使用していますが、これは同じケースです。 –