31
딥러닝 연습 - Tensorflow 기초 2 Lecture Notes on 인공지능입문, Spring 2018 Made by JeHwan Ryu Biointelligence Laboratory School of Computer Science and Engineering Seoul National Univertisy http://bi.snu.ac.kr

New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

딥러닝연습 - Tensorflow 기초 2

Lecture Notes on 인공지능입문, Spring 2018

Made by JeHwan Ryu

Biointelligence Laboratory

School of Computer Science and Engineering

Seoul National Univertisy

http://bi.snu.ac.kr

Page 2: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Matplotlib tutorial

2

Page 3: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Matplotlib.pyplot

MATLAB 처럼 matplotlib 을사용할수있게하는명령스타일함수들(command style functions) 모음

3

Page 4: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Try

Ipython 창에서출력을확인하려면%matplotlib inline

커맨드필수!

4

Page 5: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Basic Graph

plot() 함수 데이터를받아그래프를그려주는함수

매우다양한형태

plot([1,2,3,4])

= plot([0,1,2,3], [1,2,3,4])

= plot([0,1,2,3], [1,2,3,4], ‘b-’)

plot(xdata, ydata, ‘색깔및형태’) 의사용법이일반적

label 옵션으로각 plot에이름부여

Data로 numpy array도받을수있음

axis() 함수 축에관한옵션을수정하는함수

Ex) axis([xmin, xmax, ymin, ymax]) = 축의범위수정

5

Page 6: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Basic Graph

6

Page 7: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Multi Plot

Plot 함수는여러 x, y를동시에받을수있음

Plot 함수를여러번호출하여동일한 graph에계속그릴수있음

7

Page 8: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Multi Plot

앞장의출력

8

Page 9: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Multi Figure

figure()

새 figure(창) 을만드는함수

number 를인자로줘서각창을구분할수있음

subplot(nrows, ncols, index)

subplot(212) : 2x1으로분할한 figure의 2번째 subfigure를사용

9

Page 10: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Multi Figure

앞장의출력

10

Page 11: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Image Show

imshow()

이미지를보여주는함수

다양한형태의이미지(numpy array, Image 객체등)를 input으로받을수있음

11

Page 12: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

기타등등

다양한형태의 plot 가능 scatter(), bar() hist()…

Text 삽입가능 xlabel(string), ylabel(string), title(string)

12

Page 13: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Tensorboard 전에

Arbitrary Data 만들기

13

Page 14: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Tensorboard 전에

Linear Regression 코드수정본

변경점

reduce_sum → reduce_mean

GradientOptimizer → AdamOptimizer

14

Page 15: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Tensorboard tutorial

15

Page 16: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Tensorboard 실행

터미널에서 tensorboard –logdir=경로를입력하여실행

현재는저장된 log파일이없으므로 [경로 : ./] 으로하여 tensorboard가되는지만확인

터미널에출력되는주소를웹브라우저에입력하면실행된tensorboard를볼수있음

기본포트를 6006으로사용하며, 별도의옵션으로포트변경가능

16

Page 17: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

17

Page 18: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

FileWriter

tf.summary.merge_all()

Tensorboard에넣기로선언된모든 tensor의요약데이터를합쳐서생산해주는 operation

이요약 operation을실행(sess.run())하여실제요약데이터를얻음

모든요약 operation을붙인이후에호출해야함!

tf.summary.FileWriter(경로, 그래프)

Log를실제로지정된경로에써주는 writer class

경로는필수, 그래프는옵션

이후 write에각 value나 summar를 add하게됨

(위의코드는 datetime library를사용해서별도의 import 필요)

18

Page 19: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Scalar

tf.summary.scalar(tags, values)

Scalar 값을요약하는 operation

주로단일값인 accuracy, loss, current learning rate 등을기록하는데에사용

19

Page 20: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Histogram

tf.summary.histogram(tags, values)

Tensor 값을요약하는 operation

주로 Weight, Bias 등을기록하는데에사용

Step에따른분산을보여주는 Distribution과step에따른분포를보여주는 Histogram이활성화

20

Page 21: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Histogram

Distribution 탭의해석방법

21

Page 22: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Graph

Graph 탭 tf.summary.FileWriter(경로, 그래프) 에서그래프를주었을때생성

Tensor의 flow와 operation들을한눈에파악가능

적절한 namescope를주어가독성을높일수있음

22

Page 23: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Graph

Tensorboard 내의 symbol

23

Page 24: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

NameScope

tf.name_scope(string)

Node들을수용하는 high-level node를만드는함수

보통 with문과같이사용하며, 해당함수가살아있는동안생성되는모든노드는해당 name_scope 안에생성

24

Page 25: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

NameScope

그래프에있는모든 operation들의이름을 print

했을때출력되는이름

특정 NameScope 밑에존재하는 operatio들을확인가능(ex. Evaluation/Sum)

25

Page 26: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

NameScope

26

Page 27: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Write

Training 단계

Merge된요약 operation을 session에서실행시켜summary를생성

이후해당 summary를 write의 add_summary(summary,

step)을통해실제파일에써주어야 tensorboard에반영됨

27

기본

Tensorboard

사용시

Page 28: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

기본전체코드

28

Page 29: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Tensorboard 사용전체코드

29

Page 30: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Problem 1

임의의고양이사진을다운받아폴더에저장하고그사진을다음과같은형식으로출력하는코드를완성하시오

해당코드전체제출

(plt.imread(경로)의함수로이미지를읽어올수있음)

30

Page 31: New 딥러닝연습 - Tensorflow 기초 2 - Seoul National University · 2018. 5. 28. · FileWriter tf.summary.merge_all() Tensorboard에넣기로선언된모든tensor의요약데이터를쳐서

Reference

TensorBoard 공식설명페이지: https://www.tensorflow.org/programmers_guide/summarie

s_and_tensorboard

문동선의블로그: http://dsmoon.tistory.com/entry/TensorBoard-Visualizing-

Learning

31