2017-08-31 16 views
1
#layer 1 
w1 = tf.Variable(tf.zeros([784, 30])) 
b1 = tf.Variable(tf.zeros([30])) 
y1 = tf.nn.relu(tf.matmul(X, w1) + b1) 

#layer 2 
w2 = tf.Variable(tf.zeros([30, 10])) 
b2 = tf.Variable(tf.zeros([10])) 
logits = tf.matmul(y1, w2) + b2 
preds = tf.nn.softmax(logits) 

こんにちは、私はテンソルフローとニューラルネットワークを初めて使いました。私は、桁認識のために2層のニューラルネットワークを実装しようとしました。コードは1つのレイヤーしかないときにうまく動作しますが、2番目のレイヤーを追加した後、精度は0.11xxxxに低下しました。私のコードに何が問題なのですか?事前に感謝します2層ニューラルネットワークTensorflow Python

答えて

2

あなたはrandom_normalを使用して体重を初期化することができます。

w1 = tf.Variable(tf.random_normal([784, 30])) 
... 
w2 = tf.Variable(tf.random_normal([30, 10])) 
+0

こんにちは、アドバイスありがとうございます。今は動作しますが、それはわずか0.43から始まり、20エポック後には0.907に達しますが、それは悪いことではありませんが、なぜ1層よりも悪いのだろうと思っています。 – Jay

+0

私はまた、最初の訓練の損失が超高(11.8)であったことを認識しています。それが0.43で始まる理由かもしれません。私は損失を計算するためにこれを使用しました。 – Jay

+2

はあなたのオプティマイザと学習率に関連している可能性があります:batch_xentropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels = Y、logits = logits)) –

関連する問題