Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
딥러닝연습 - 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
Matplotlib tutorial
2
Matplotlib.pyplot
MATLAB 처럼 matplotlib 을사용할수있게하는명령스타일함수들(command style functions) 모음
3
Try
Ipython 창에서출력을확인하려면%matplotlib inline
커맨드필수!
4
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
Basic Graph
6
Multi Plot
Plot 함수는여러 x, y를동시에받을수있음
Plot 함수를여러번호출하여동일한 graph에계속그릴수있음
7
Multi Plot
앞장의출력
8
Multi Figure
figure()
새 figure(창) 을만드는함수
number 를인자로줘서각창을구분할수있음
subplot(nrows, ncols, index)
subplot(212) : 2x1으로분할한 figure의 2번째 subfigure를사용
9
Multi Figure
앞장의출력
10
Image Show
imshow()
이미지를보여주는함수
다양한형태의이미지(numpy array, Image 객체등)를 input으로받을수있음
11
기타등등
다양한형태의 plot 가능 scatter(), bar() hist()…
Text 삽입가능 xlabel(string), ylabel(string), title(string)
12
Tensorboard 전에
Arbitrary Data 만들기
13
Tensorboard 전에
Linear Regression 코드수정본
변경점
reduce_sum → reduce_mean
GradientOptimizer → AdamOptimizer
14
Tensorboard tutorial
15
Tensorboard 실행
터미널에서 tensorboard –logdir=경로를입력하여실행
현재는저장된 log파일이없으므로 [경로 : ./] 으로하여 tensorboard가되는지만확인
터미널에출력되는주소를웹브라우저에입력하면실행된tensorboard를볼수있음
기본포트를 6006으로사용하며, 별도의옵션으로포트변경가능
16
17
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
Scalar
tf.summary.scalar(tags, values)
Scalar 값을요약하는 operation
주로단일값인 accuracy, loss, current learning rate 등을기록하는데에사용
19
Histogram
tf.summary.histogram(tags, values)
Tensor 값을요약하는 operation
주로 Weight, Bias 등을기록하는데에사용
Step에따른분산을보여주는 Distribution과step에따른분포를보여주는 Histogram이활성화
20
Histogram
Distribution 탭의해석방법
21
Graph
Graph 탭 tf.summary.FileWriter(경로, 그래프) 에서그래프를주었을때생성
Tensor의 flow와 operation들을한눈에파악가능
적절한 namescope를주어가독성을높일수있음
22
Graph
Tensorboard 내의 symbol
23
NameScope
tf.name_scope(string)
Node들을수용하는 high-level node를만드는함수
보통 with문과같이사용하며, 해당함수가살아있는동안생성되는모든노드는해당 name_scope 안에생성
24
NameScope
그래프에있는모든 operation들의이름을 print
했을때출력되는이름
특정 NameScope 밑에존재하는 operatio들을확인가능(ex. Evaluation/Sum)
25
NameScope
26
Write
Training 단계
Merge된요약 operation을 session에서실행시켜summary를생성
이후해당 summary를 write의 add_summary(summary,
step)을통해실제파일에써주어야 tensorboard에반영됨
27
기본
Tensorboard
사용시
기본전체코드
28
Tensorboard 사용전체코드
29
Problem 1
임의의고양이사진을다운받아폴더에저장하고그사진을다음과같은형식으로출력하는코드를완성하시오
해당코드전체제출
(plt.imread(경로)의함수로이미지를읽어올수있음)
30
Reference
TensorBoard 공식설명페이지: https://www.tensorflow.org/programmers_guide/summarie
s_and_tensorboard
문동선의블로그: http://dsmoon.tistory.com/entry/TensorBoard-Visualizing-
Learning
31