Python 인공지능 텐서보드 사용법

2018.03.24 21:15

졸리운_곰 조회 수:591

 

텐     텐서보드 사용법

TensorBoard는 TensorFlow에 기록된 로그를 그래프로 시각화시켜서 보여주는 도구다.


1. TensorBoard 실행
tensorboard --logdir=/tmp/sample
루트(/) 폴더 밑의 tmp 폴더 밑의 sample 폴더에 기록된 로그를 보겠다,라는 명령.
logdir 뒤에는 로그가 기록된 폴더를 명시한다.

기록된 폴더는 소스 코드를 구동시킬 때 명시하게 되어 있다.
즉, 소스 코드를 구동하지 않으면 로그도 없으므로 볼 것도 없다.
다만 로그가 그냥 기록되는 것은 아니고 소스 코드에 직접 관련 코드를 넣어야 한다.

2. tensorboard 정체
앞에서 실행한 명령의 tensorboard는
파이썬 설치 폴더 아래의 tensorflow 폴더 밑에 있는 tensorboard.py 파일을 가리킨다.

맥에서 tensorboard.py 파일의 위치
/usr/local/lib/python3.5/site-packages/tensorflow/tensorboard/tensorboard.py

3. 로그 위치
소스 코드에서 로그를 기록하기 위한 코드이다.
writer = tf.train.SummaryWriter("/tmp/test_logs", session.graph)

소스 코드를 구동하면 "/tmp/test_logs" 폴더에 확장자가 local인 파일이 생성된다.
-rw-r--r--   1 applekoong  wheel  681  8  1 21:37 events.out.tfevents.1470055070.applekoong.local

파일 이름이 꽤 길고 복잡하다.
이 파일이 있어야 tensorboard에서 결과를 볼 수 있다.

4. 포트 번호
tensorboard 기본 포트번호는 6006이다. 필요에 따라 포트 번호를 바꿀 수 있다.
tensorboard --logdir=/tmp/sample --port=8008

tensorboard 명령을 실행할 때 port 옵션을 사용해서 포트 번호를 지정할 수 있다.
동시에 여러 개의 로그를 보고 싶을 때 사용할 수 있다.

5. 웹 브라우저
콘솔에서 명령을 입력했을 때, 출력된 메시지를 보면 ip 주소가 나온다.
웹 브라우저를 열고 해당 주소와 포트 번호를 입력하면 그래프를 볼 수 있다.

입력 주소에는 두 가지가 있다.
0.0.0.0:6006 또는 localhost:6006

6. tensorboard 종료
웹 브라우저는 단순히 로그를 시각화하는 역할만 한다.
웹 브라우저를 종료한다고 해서 tensorboard가 종료되는 것이 아니다.

tensorboard 명령을 입력하면 해당 콘솔은 블록(대기) 상태로 들어간다.
ctrl+c를 입력하면 tensorboard가 종료된다. 맥에서도 ctrl+c를 사용한다. cmd+c가 아니다.

7. 주의사항
tensorboard를 실행하면 콘솔 창에 알 수 없는 경고가 뜬다.
결론적으로 결과를 보는 데에는 지장이 없다. 구글링해도 나오지 않는다.
 

WARNING:tensorflow:IOError [Errno 2] No such file or directory: 
    '/usr/local/lib/python3.5/site-packages/tensorflow/tensorboard/TAG' 
    on path /usr/local/lib/python3.5/site-packages/tensorflow/tensorboard/TAG
WARNING:tensorflow:Unable to read TensorBoard tag

또 하나는 로그 폴더를 잘못 입력해도 문제가 발생하지 않는다.
다만 웹 브라우저에 결과가 나타나지 않을 뿐이다.
tensorboard 입장에서는 폴더가 없다고 해서 이상한 행동을 할 필요는 없다고 보는 듯..
처음에 폴더 지정이 어색해서 여러 번 실수를 했다.

로그 결과는 계속 누적된다.
이전 결과는 사라지지 않고 남아 있다. 그러나, 웹 브라우저에서는 최신의 결과만 볼 수 있다.
이전 결과를 볼 수는 있겠지만, 화면에서 예전 결과를 선택하는 방법은 찾지 못했다.

이전 로그가 있을 때 뜨는 경고 메시지.
WARNING:tensorflow:Found more than one graph event per run. Overwriting the graph with the newest event.

8. 예제 1
tensorboard에 점 하나 찍는 예제
import tensorflow as tf

a = tf.constant(3.0)
b = tf.constant(5.0)
c = a * b

# tensorboard에 point라는 이름으로 표시됨
c_summary = tf.summary.scalar('point', c)
merged = tf.summary.merge_all()

with tf.Session() as sess:
    writer = tf.summary.FileWriter('./board/sample_1', sess.graph)

    result = sess.run([merged])
    sess.run(tf.global_variables_initializer())

    writer.add_summary(result[0])

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com


9. 예제 2
두 개의 직선을 출력하는 예제. 김성훈 교수님께서 말씀하신 5단계를 순서대로 보여준다.
import tensorflow as tf

X = tf.placeholder(tf.float32)
Y = tf.placeholder(tf.float32)

add = tf.add(X, Y)
mul = tf.multiply(X, Y)

# step 1: node 선택
add_hist = tf.summary.scalar('add_scalar', add)
mul_hist = tf.summary.scalar('mul_scalar', mul)

# step 2: summary 통합. 두 개의 코드 모두 동작.
merged = tf.summary.merge_all()
# merged = tf.summary.merge([add_hist, mul_hist])

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())

    # step 3: writer 생성
    writer = tf.summary.FileWriter('./board/sample_2', sess.graph)

    for step in range(100):
        # step 4: 노드 추가
        summary = sess.run(merged, feed_dict={X: step * 1.0, Y: 2.0})
        writer.add_summary(summary, step)

# step 5: 콘솔에서 명령 실행
# tensorboard --logdir=./board/sample_2
# 콘솔 폴더가 현재 폴더(.)가 아니라면, 절대 경로 지정
# tensorboard --logdir=~/PycharmProjects/test/board/sample_2



출처: http://pythonkim.tistory.com/39 [파이쿵]

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
17 [python 수학] FizzBuzz를 '개발자답게' 구현해보자 file 졸리운_곰 2024.12.26 317
16 [python 수학] matplot ylim How to set the axis limits y축 범위 고정 졸리운_곰 2024.06.08 434
15 [python 수학] [PYTHON] bar 그래프에 백분율 표시하기 file 졸리운_곰 2024.06.08 476
14 [python 수학] [Python] 막대 그래프 (Bar Chart) file 졸리운_곰 2024.06.08 357
13 [Python 수학] Plotting With PyQtGraph 졸리운_곰 2024.06.07 558
12 [Python 수학] 그래프 라이브러리 PyQtGraph 2D Graph 예제 코드 file 졸리운_곰 2024.06.06 498
11 [python 수학] [PYTHON] bar 그래프에 백분율 표시하기 file 졸리운_곰 2024.06.06 721
10 [python 수학] [Numpy] 넘파이 기본 문법 정리 졸리운_곰 2023.11.28 605
9 [python 수학] Numpy 많이쓰는 함수 정리 졸리운_곰 2023.11.28 533
8 [Python 수학] Python/데이터 사이언스 [파이썬] Numpy 정리 졸리운_곰 2023.11.28 428
7 [python][anaconda] 파이썬3(python3) 설치하고 환경(env) 관리하기 - 아나콘다3(anaconda3)를 활용한 설치 file 졸리운_곰 2022.01.20 358
6 [python][anaconda] 파이선 아나콘다 최신 버전 업데이트하기 file 졸리운_곰 2022.01.20 714
5 [python] 시험삼아 만들어본 로또 번호 생성기 졸리운_곰 2017.02.28 2214
4 Introduction to Python for Econometrics_Statistics and Data Analysis.pdf file 졸리운_곰 2016.06.07 2529
3 Numerical.Methods.in.Engineering.with.Python.2nd.Edition.Jaan.Kiusalaas.2010.pdf file 졸리운_곰 2016.06.07 2499
2 NumMethodPython.pdf file 졸리운_곰 2016.06.07 2419
1 Python-for-Computational-Science-and-Engineering.pdf file 졸리운_곰 2016.06.07 2316
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED