0

テンソルフロー CNN の最初のラウンド ステップで損失が NAN になります。

1. ネットワーク:

3 つの隠れ層 (2 つの畳み込み層 + 1 つの隠れたフルコネクト層) + 読み出し層。

2. 3 つの隠れ層:

a) 重み:
W = tf.Variable(tf.truncated_normal(wt,stddev=0.1,name='wights' ))

b) バイアス:
b = tf.Variable( tf.fill([W.get_shape().as_list()[-1] ],0.9),name = 'biases' )

c) アクティベーション:
ReLu

d) ドロップアウト:
0.6

**dropout が 0.0 の場合でも、loss は nan になります

3.レイヤーの読み出し:
softmax

4: 損失関数:
tf.reduce_mean(-tf.reduce_sum(_lables * tf.log(_logist), reduction_indices=[1]))

5.オプティマイザ:
tf.train.AdamOptimizer

learning_rate = 0.0005
**learning_rate = 0 の場合でも、損失は nan になります

4

2 に答える 2

1

これまでのところ、次の 2 つのケースに遭遇しましたnan

  • 数値が大きくなりすぎます (おそらくsquare数値で実行していて、結果が大きすぎます)
  • または、無効な入力が存在します (いくつかの関数は や のようsqrtlog負の入力をとらないため、 を返しnanます) 。
于 2018-03-20T04:36:04.993 に答える