728x90
반응형
수 많은 data가 있으면 그 모든 데이터를 학습하는데 사용하지 않고 일부분은 따로 떼어 test하는 곳에 사용하게 된다.
data를 학습하는 것을 training, training한 data를 사용하여 결과를 확인해보는 data를 test라고 한다.
소스 코드를 보고 이해해 보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | import tensorflow as tf x_data = [[1, 2, 1], [1, 3, 2], [1, 3, 4], [1, 5, 5], [1, 7, 5], [1, 2, 5], [1, 6, 6], [1, 7, 7]] y_data = [[0, 0, 1], [0, 0, 1], [0, 0, 1], [0, 1, 0], [0, 1, 0], [0, 1, 0], [1, 0, 0], [1, 0, 0]] # Evaluation our model using this test dataset x_test = [[2, 1, 1], [3, 1, 2], [3, 3, 4]] y_test = [[0, 0, 1], [0, 0, 1], [0, 0, 1]] X = tf.placeholder("float32", [None, 3]) Y = tf.placeholder("float32", [None, 3]) W = tf.Variable(tf.random_normal([3, 3])) b = tf.Variable(tf.random_normal([3])) hypothesis = tf.nn.softmax(tf.matmul(X, W) + b) cost = tf.reduce_mean(-tf.reduce_sum(Y * tf.log(hypothesis), axis=1)) optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.1).minimize(cost) prediction = tf.arg_max(hypothesis, 1) is_correct = tf.equal(prediction, tf.arg_max(Y, 1)) accuracy = tf.reduce_mean(tf.cast(is_correct, tf.float32)) with tf.Session() as sess: sess.run(tf.global_variables_initializer()) for step in range(201): cost_val, W_val, _ = sess.run( [cost, W, optimizer], feed_dict={X: x_data, Y:y_data}) print(step, cost_val, W_val) print("Prediction:", sess.run(prediction, feed_dict={X: x_test})) print("Accuracy: ", sess.run(accuracy, feed_dict={X: x_test, Y: y_test})) |
반응형
'Study > Machine&Deep Learning' 카테고리의 다른 글
[ML] Neural Net for XOR (0) | 2018.06.23 |
---|---|
[ML] MNIST (0) | 2018.06.16 |
[ML] Overfitting and Regularization (0) | 2018.06.03 |
[ML] Learning rate (0) | 2018.06.03 |
[ML] Fancy Softmax Classifier (0) | 2018.05.31 |
댓글