Submit Search
Upload
Tensorflow 101
•
1 like
•
536 views
GDG Korea
Follow
Google I/O Extended Seoul 2016 발표자료입니다.
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 33
Download now
Download to read offline
Recommended
Tetris
Tetris
Hwangcy
MNIST for ML beginners
MNIST for ML beginners
홍배 김
접근성(Accessibility)과 안드로이드
접근성(Accessibility)과 안드로이드
GDG Korea
GKAC 2014 Nov. - 안드로이드 스튜디오로 생산성 올리기
GKAC 2014 Nov. - 안드로이드 스튜디오로 생산성 올리기
GDG Korea
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
GDG Korea
디자이너 없어도 괜찮아! (feat.Material Design Guide)
디자이너 없어도 괜찮아! (feat.Material Design Guide)
GDG Korea
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GDG Korea
리팩토링 사례 스타프로리그앱
리팩토링 사례 스타프로리그앱
beom kyun choi
Recommended
Tetris
Tetris
Hwangcy
MNIST for ML beginners
MNIST for ML beginners
홍배 김
접근성(Accessibility)과 안드로이드
접근성(Accessibility)과 안드로이드
GDG Korea
GKAC 2014 Nov. - 안드로이드 스튜디오로 생산성 올리기
GKAC 2014 Nov. - 안드로이드 스튜디오로 생산성 올리기
GDG Korea
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
GDG Korea
디자이너 없어도 괜찮아! (feat.Material Design Guide)
디자이너 없어도 괜찮아! (feat.Material Design Guide)
GDG Korea
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GDG Korea
리팩토링 사례 스타프로리그앱
리팩토링 사례 스타프로리그앱
beom kyun choi
Best Practices in Media Playback
Best Practices in Media Playback
GDG Korea
FIrebase를 이용한 호우호우 미니게임 만들기
FIrebase를 이용한 호우호우 미니게임 만들기
GDG Korea
Reinfocement learning
Reinfocement learning
GDG Korea
안드로이드 데이터 바인딩
안드로이드 데이터 바인딩
GDG Korea
Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016
GDG Korea
[2017 KCD] 내가 블로그/커뮤니티를 하는 이유는?
[2017 KCD] 내가 블로그/커뮤니티를 하는 이유는?
Taehwan kwon
Building Extraordinary Apps with Firebase Analytics
Building Extraordinary Apps with Firebase Analytics
GDG Korea
텐서플로우 기초 이해하기
텐서플로우 기초 이해하기
Yong Joon Moon
GKAC 2015 Apr. - Xamarin forms, mvvm and testing
GKAC 2015 Apr. - Xamarin forms, mvvm and testing
GDG Korea
GKAC 2015 Apr. - RxAndroid
GKAC 2015 Apr. - RxAndroid
GDG Korea
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GDG Korea
GKAC 2015 Apr. - Android Looper
GKAC 2015 Apr. - Android Looper
GDG Korea
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GDG Korea
GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?
GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?
GDG Korea
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GDG Korea
GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기
GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기
GDG Korea
GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능
GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능
GDG Korea
More Related Content
Viewers also liked
Best Practices in Media Playback
Best Practices in Media Playback
GDG Korea
FIrebase를 이용한 호우호우 미니게임 만들기
FIrebase를 이용한 호우호우 미니게임 만들기
GDG Korea
Reinfocement learning
Reinfocement learning
GDG Korea
안드로이드 데이터 바인딩
안드로이드 데이터 바인딩
GDG Korea
Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016
GDG Korea
[2017 KCD] 내가 블로그/커뮤니티를 하는 이유는?
[2017 KCD] 내가 블로그/커뮤니티를 하는 이유는?
Taehwan kwon
Building Extraordinary Apps with Firebase Analytics
Building Extraordinary Apps with Firebase Analytics
GDG Korea
텐서플로우 기초 이해하기
텐서플로우 기초 이해하기
Yong Joon Moon
Viewers also liked
(8)
Best Practices in Media Playback
Best Practices in Media Playback
FIrebase를 이용한 호우호우 미니게임 만들기
FIrebase를 이용한 호우호우 미니게임 만들기
Reinfocement learning
Reinfocement learning
안드로이드 데이터 바인딩
안드로이드 데이터 바인딩
Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016
[2017 KCD] 내가 블로그/커뮤니티를 하는 이유는?
[2017 KCD] 내가 블로그/커뮤니티를 하는 이유는?
Building Extraordinary Apps with Firebase Analytics
Building Extraordinary Apps with Firebase Analytics
텐서플로우 기초 이해하기
텐서플로우 기초 이해하기
More from GDG Korea
GKAC 2015 Apr. - Xamarin forms, mvvm and testing
GKAC 2015 Apr. - Xamarin forms, mvvm and testing
GDG Korea
GKAC 2015 Apr. - RxAndroid
GKAC 2015 Apr. - RxAndroid
GDG Korea
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GDG Korea
GKAC 2015 Apr. - Android Looper
GKAC 2015 Apr. - Android Looper
GDG Korea
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GDG Korea
GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?
GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?
GDG Korea
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GDG Korea
GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기
GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기
GDG Korea
GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능
GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능
GDG Korea
More from GDG Korea
(9)
GKAC 2015 Apr. - Xamarin forms, mvvm and testing
GKAC 2015 Apr. - Xamarin forms, mvvm and testing
GKAC 2015 Apr. - RxAndroid
GKAC 2015 Apr. - RxAndroid
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Android Looper
GKAC 2015 Apr. - Android Looper
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?
GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기
GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기
GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능
GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능
Tensorflow 101
1.
TENSORFLOW 101 © Leonardo YongUk
Kim (dalinaum@gmail.com), 2016.
2.
발표자 > Leonardo YongUk
Kim (dalinaum@gmail.com) > 모바일 데이터베이스, Realm의 Java 개발자. > GDG Korea Android의 운영자 © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
3.
다루는 것과 다루지
않는 것 > 다루는 것 > 다루지 않는 것 © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
4.
다루는 것 > 텐서플로우가
무엇인가? > 어떻게 설치하는가? > 간략한 사용법 © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
5.
다루지 않는 것 >
복잡한 사용법 > 머신 러닝, 인공 지능 > 알파고, 이세돌 > 구글의 전략 > 창조 경제 © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
6.
텐스플로우란 무엇인가? > TensorFlow
is an Open Source Software Library for Machine Intelligence > Tensor - 벡터, 매트릭스 등의 자료구조를 의미 > Flow - 일련의 처리 > TensorFlow - 여러 자료구조를 일련의 가공을 거쳐 머신 지능을 만들게 하는 라이브러리. © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
7.
다운로드와 설치 > 이
발표는 OS X, CPU 만 다룹니다. > export TF_BINARY_URL=https:// storage.googleapis.com/tensorflow/mac/ tensorflow-0.9.0rc0-py2-none-any.whl > pip install --upgrade $TF_BINARY_URL © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
8.
HELLO WORLD # python import
tensorflow as tf hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() a = tf.constant(10) b = tf.constant(32) print(sess.run(a + b)) > 상수를 만들 수 있고 실행은 세션에서 해야 합니다. © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
9.
HELLO WORLD (계속) #
python import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() a = tf.constant(10) b = tf.constant(32) print(sess.run(a + b)) > 왜 덧셈도 했나요? > 죄송합니다. © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
10.
> MNIST database
(Mixed National Institute of Standards and Technology database) is a large database of handwritten digits that is commonly used for training various image processing systems. > 5.5 만개의 학습이미지, 1 만개의 테스트 이미지, 0.5 만개의 검증 이미지 © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
11.
MNIST 다운로드 # MNIST
데이터 다운로드 from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) > 손으로 받을 필요 없어요. > 5.5 만개의 학습이미지 (mnist.train) > 1 만개의 테스트 이미지 (mnist.test) > 0.5 만개의 검증 이미지 (mnist.validation) © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
12.
> 개별이미지는 28
x 28의 크기 > 숫자들의 배열로 치환하자 © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
13.
이미지 텐서 > 평면화
시키면 28 x 28 = 784. > 784 차원의 벡터 공간 © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
14.
> mnist.train,images는 [55000,
784] 모양의 텐서. © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
15.
원 핫 벡터 >
n번째 차원만 1이고 나머지는 모두 0인 벡터. > 3은 [0, 0, 0, 1, 0, 0, 0, 0, 0, 0]으로 표현. © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
16.
> 우리는 0부터
9까지 숫자로 매핑할 것이기 때문에 [55000, 10]의 mnist.train.labels을 준비. © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
17.
소프트맥스 회귀 > 사람은
직관적으로 0에서 9까지 판독 한다. > 반면 여기에서는 각 숫자에 대한 확률을 얻게 된다. 소프트맥스 회귀는 두 단계다. 1. 입력이 특정 클래스에 속한다는 근거를 추가한다. 2. 근거를 확률로 환산한다. © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
18.
가중치 파란색이 긍정적인 가중치 빨간색이
부정적인 가중치 © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
19.
근거와 소프트맥스 > y
= softmax(evidence) > softmax(x) = normalize(exp(x)) © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
20.
소프트맥스 © Leonardo YongUk
Kim (dalinaum@gmail.com), 2016.
21.
소프트맥스 y = softmax(Wx
+ b) © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
22.
회귀 시행 > 텐서플로우를
가져오자. import tensorflow as tf > 어떤 숫자의 이미지도 받기 위한 플레이스 홀더. x = tf.placeholder(tf.float32, [None, 784]) > None은 어떤 차원도 될 수 있다는 의미 © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
23.
W = tf.Variable(tf.zeros([784,
10])) b = tf.Variable(tf.zeros([10])) > W와 b를 모두 0으로 초기화. > 배운 이후로 의미 없는 수. © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
24.
모델을 수행시키자. y =
tf.nn.softmax (tf.matmul(x, W) + b) © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
25.
훈련 > 잘못을 알기
위해 좋은 모델이 무엇인지 필요. > cross-entrophy을 비용함수로 사용. © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
26.
옳은 값을 넣을
플레이스 홀더가 필요. y_ = tf.placeholder(tf.float32, [None, 10]) cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1])) © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
27.
최적화 알고리즘을 선택
(경사 하강법 선택) cross_entropy가 최소화되도록 조금씩 값을 바꾸어 가며 값을 찾음. train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy) © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
28.
초기화 init = tf.initialize_all_variables() ©
Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
29.
세션에 모델을 넣고
변수를 초기화 sess = tf.Session() sess.run(init) © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
30.
1000번을 훈련 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}) © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
31.
모델 평가 correct_prediction =
tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) tf.argmax은 가장 높은 확률의 인덱스를 가져옴. accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) 정확도를 비교 © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
32.
전체 코드 https://gist.github.com/dalinaum/ 64cca32623313ae56638cbedbd8e837a 조금 더
알고 싶습니다 > 텐서플로우 튜토리얼을 봅시다. © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
33.
두가지 더: 구글의
머신러닝 API > Vision API demo > Speech API demo 감사합니다. © Leonardo YongUk Kim (dalinaum@gmail.com), 2016.
Download now