News & Events
Tensorflow에서 제공하는 기본 데이터셋인 MNIST로 가볍게 돌려볼 수 있는 튜토리얼을 제공하고 있습니다.
이것을 통해서 간단하게 Tensorflow로 ML을 돌려볼 수 있는데, 대략 이런 함수들이 있구나 이렇게 흘러가는구나 정도는 가볍게 알수 있는 쉬운 예제인 것 같습니다.
일단 모라도 작성해서 돌려보고 결과가 나오는 것을 봐야 아! 걸음마를 땠구나 하는 기분이 들기 때문에, 직접 한번 작성해보고 실행을 해보는 것이 좋은 것 같습니다.
test1.py
import tensorflow as tf
# MNIST 데이터 불러오기
from tensorflow.examples.tutorials.mnist import input_data
mnistData = input_data.read_data_sets(“MNIST_data/”, one_hot=True)
# 28*28 image data features
x = tf.placeholder(tf.float32, [None, 784])
# theta
W = tf.Variable(tf.zeros([784,10]))
# bias term
b = tf.Variable(tf.zeros([10]))
# h(x) using softmax
y = tf.nn.softmax(tf.matmul(x, W) + b)
# prediction values
y_ = tf.placeholder(tf.float32, [None, 10])
# Cost function
cross_entropy = tf.reduce_mean(- tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
# Gradient descent
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
# 모든 변수 초기화
init = tf.initialize_all_variables()
# Session 생성
sess = tf.Session()
sess.run(init)
# training
for i in range(1000):
batch_xs, batch_ys = mnistData.train.next_batch(100)
sess.run(train_step, feed_dict={x: batch_xs, y_:batch_ys})
# training 결과 확인
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: mnistData.test.images, y_: mnistData.test.labels}))
튜토리얼에서 사용한 full source 입니다.
실행을 시켜보면 아래와 같이 약 92%의 정확도가 나옵니다.
92%면 대단한데~ 하고 있을때 튜토리얼 문서에서는 심하게 구린 결과라고 말하고 있습니다…ㅜㅜ
이것을 통해서 간단하게 Tensorflow로 ML을 돌려볼 수 있는데, 대략 이런 함수들이 있구나 이렇게 흘러가는구나 정도는 가볍게 알수 있는 쉬운 예제인 것 같습니다.
일단 모라도 작성해서 돌려보고 결과가 나오는 것을 봐야 아! 걸음마를 땠구나 하는 기분이 들기 때문에, 직접 한번 작성해보고 실행을 해보는 것이 좋은 것 같습니다.
test1.py
import tensorflow as tf
# MNIST 데이터 불러오기
from tensorflow.examples.tutorials.mnist import input_data
mnistData = input_data.read_data_sets(“MNIST_data/”, one_hot=True)
# 28*28 image data features
x = tf.placeholder(tf.float32, [None, 784])
# theta
W = tf.Variable(tf.zeros([784,10]))
# bias term
b = tf.Variable(tf.zeros([10]))
# h(x) using softmax
y = tf.nn.softmax(tf.matmul(x, W) + b)
# prediction values
y_ = tf.placeholder(tf.float32, [None, 10])
# Cost function
cross_entropy = tf.reduce_mean(- tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
# Gradient descent
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
# 모든 변수 초기화
init = tf.initialize_all_variables()
# Session 생성
sess = tf.Session()
sess.run(init)
# training
for i in range(1000):
batch_xs, batch_ys = mnistData.train.next_batch(100)
sess.run(train_step, feed_dict={x: batch_xs, y_:batch_ys})
# training 결과 확인
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: mnistData.test.images, y_: mnistData.test.labels}))
튜토리얼에서 사용한 full source 입니다.
실행을 시켜보면 아래와 같이 약 92%의 정확도가 나옵니다.
92%면 대단한데~ 하고 있을때 튜토리얼 문서에서는 심하게 구린 결과라고 말하고 있습니다…ㅜㅜ