2016-07-28 13 views
12

Son zamanlarda TensorFlow merkezli bir Udacity Deep Learning kursu yapıyorum. Turn the logistic regression example with SGD into a 1-hidden layer neural network with rectified linear units nn.relu() and 1024 hidden nodesTensorflow Relu Yanlış anlaşılma

Bu konuda zihinsel blok yaşıyorum için

 

from tensorflow.examples.tutorials.mnist import input_data 
import tensorflow as tf 

mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) 

x = tf.placeholder(tf.float32, [None, 784]) 
W = tf.Variable(tf.zeros([784, 10])) 
b = tf.Variable(tf.zeros([10])) 

y = tf.nn.softmax(tf.matmul(x, W) + b) 

y_ = tf.placeholder(tf.float32, [None, 10]) 
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1])) 

train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy) 

init = tf.initialize_all_variables() 

sess = tf.Session() 
sess.run(init) 

for i in range(1000): 
    batch_xs, batch_ys = mnist.train.next_batch(100) 
    sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys}) 

correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) 
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) 
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})) 
 

Bir sonraki atama it: Ben yaklaşık% 92 doğru olan basit MNIST program var. Şu anda 784 x 10 Matris ağırlığında ve 10 element uzunluğunda önyargı vektörüm var. Sonuçta ortaya çıkan 10 eleman vektörünü WX + Bias'dan 1024 Relu s'ye nasıl bağlayacağımı anlamıyorum.

Bunu bana açıklayan herkes çok minnettar olurdu.

cevap

18

Şu anda bu

gibi bir şey varsa ve bu

gibi bir şey gerekir (bu diyagram + b1 sonra gider relu katmanı eksik)

+0

Açık cevabınız için çok teşekkür ederim, şimdi yapmam gerekeni kavradım. X bir 784 eleman vektörüdür ve WX + B işlemi bir 1024 eleman vektörü ile sonuçlanmalıdır. Fazla 240 elementin nereden geldiğinden matematiksel olarak emin değilim, gereksiz değiller mi? Gizli düğümlerin sayısı <= 784 – James

+1

ise daha sezgisel olarak anlayabildiğimi hissediyorum. Aslında düşük boyutlu girişleri bu şekilde daha yüksek boyutlu alanlara eşlemek yaygındır. Zemin (x)% 2 == 0 modellerini kullanan bir ağ kurmanız gerektiğini varsayalım. Girişiniz bir boyutludur, ancak önce onu daha yüksek boyutlu alana eşlemeniz gerekir. TensorFlow oyun alanı varsayılan 2 girişli nöron ve 4 gizli nöron - http://playground.tensorflow.org/ –

+0

Teşekkürler, sanırım bu, derste biraz daha fazla şey öğrendim. Bu gereksiz düğümleri, böylece gereksiz bağlantıların bırakma vb. Kullanılarak oluşturulabilmesini istiyorsunuz. – James