12
저는 최근에 TensorFlow
을 기반으로하는 Udacity Deep Learning 과정을 진행해 왔습니다. Turn the logistic regression example with SGD into a 1-hidden layer neural network with rectified linear units nn.relu() and 1024 hidden nodes
Tensorflow Relu 오해
이것에 대해 정신 블록을 데에
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}))
나의 다음 임무를 : 나는 약 92 % 정확 간단한 MNIST
프로그램이 있습니다. 현재 저는 784 x 10 매트릭스의 웨이트와 10 엘리먼트 바이어스 벡터를 가지고 있습니다. 나는 WX + Bias
에서 결과적인 10 요소 벡터를 1024 Relu
으로 연결하는 방법을 이해하지 못한다.
누구든지이 설명을 할 수 있다면 매우 감사 할 것입니다.
명확한 답변을 주셔서 대단히 감사합니다. 이제는 내가해야 할 일에 대해 이해하고 있다고 생각합니다. X는 784 요소 벡터이고 WX + B 프로세스는 1024 요소 벡터가되어야합니다. 여분의 240 요소가 어디에서 왔는지 수학적으로 확실하지 않습니다. 중복되지 않습니까? 숨겨진 노드의 수가 <= 784 – James
인 경우 더 직관적으로 이해할 수있을 것 같습니다. 실제로이 방법으로 저 차원 입력을 더 높은 차원 공간에 매핑하는 것이 일반적입니다. floor (x) % 2 == 0을 모델로하는 네트워크를 구축해야한다고 가정하십시오. 귀하의 의견은 1 차원이지만, 먼저 그것을보다 높은 차원의 공간으로 매핑해야합니다. TensorFlow 놀이터는 기본적으로 2 개의 입력 뉴런과 4 개의 숨겨진 뉴런으로 기본 설정되어 있습니다. - http://playground.tensorflow.org/ –
고마워, 내가 실제로이 과정에서 조금 더 나아 졌으니이게 실제로 의미가 있다고 생각합니다. 중복 노드가 누락 등을 사용하여 중복 연결을 만들 수 있도록 그 여분의 노드를 원합니다. – James