일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Window_Control
- 시작 시 프로그램 실행
- Tensor Board
- Nvidia 깨짐
- xlsx
- datetime
- 기초
- Pandas
- openpyxl
- 절대경로
- 상대경로
- ipdisk
- 시간
- ubuntu
- windows form
- Python
- 화면 안나옴
- Multi Processing
- keras
- DataAnalysis
- Import
- C#
- json
- Tensor Board Image
- SQL
- WPF
- nvidia 삭제
- 엑셀
- Ubuntu 18.04_2
- MySQL
- Today
- Total
Kminseo
Tensor Board 사용방법 본문
<!doctype html>
Tensor Board
현재 내용은 Tensorflow에서 keras를 사용하면서 기술한 내용입니다. Tensorflow2.0은 보다 조금 더 쉽고 편리하게 사용이 가능하다고 합니다.
실행방법
Tensorboard를 사용하기 위해서는 fit 을 하기전에 Code 내부에서 Tensorboard 사용을 입력하면 ,Log를 저장하고, Log의 주소를 Tensorboard를 사용해서 활성화 시키는게 가능하다.
Code
xxxxxxxxxx
from keras.callbacks import EarlyStopping, Callback
tb_hist = keras.callbacks.TensorBoard(log_dir='원하는 경로 디렉토리', histogram_freq=0, write_graph=True, write_images=True)
model.fit(training_images, training_masks, epochs=70, batch_size=2, verbose=1, callbacks$=[checkpoint, tb_hist]) # tb_hist를 포함
Termninal
xxxxxxxxxx
$ tensorbord --logdir=/경로
경로는 왠만하면 절대경로를 참조하는게 문제가 발생할 확률이 적다. 주소는 브라우저 창에 http://localhost:6006/
으로 접속이 가능하다.
종료
Ctrl
+c
터미널에서 종료, 브라우저 창을 종료해도 실질적으로 종료된건 아님
오류발생
데이터 이상 문제 검사
xxxxxxxxxx
$ tensorboard --inspect --logdir 디렉토리 경로
폴더 경로 오류
- Tensorboard는 폴더 경로를 잘못 입력핻 오류가 발생하지 않고 학습이 계속 지속된다. 따라서 학습을 시작하면 폴더 경로에 들어가서 잘 학습되는지 한번 확인해 볼것을 권한다.
- 또한 터미널에서 잘못된 경로를 넣으면 그래프가 생성되지 않음.
사용방법
SCALARS
SCALARS 에서 학습 곡선
, Loss의 값 변화
, 강화학습의 Reward
등의 학습이 진행됨에 따라 결과 출력의 변화를 보기 편하게 정리
데이터 다운로드
좌측 상단 체크박스
있는 곳에 Show data download 를 보면 CSV 또는 Json파일로 저장 가능하다. 만약에 matplotlib 나 다른 툴로 그래프를 그리고 싶으면 CSV로 저장해서 데이터를 읽어 그래플르 그리면 될것이다.
GRAPHS
학습 모델의 전체 Layer를 확인 해 볼 수 있는 도구이다.
Image
모델이 입력된 이미지를 보거나, filter또는 Weight들을 Visualization, Inference의 결과를 실시간으로 보는 등 다양한 기능을 제공, 사용하기 위해서는 특정 함수 및 클래스를 만들어서 사용해야 한다.
함수 방식의 호출
텐서보드에서 Image를 사용하기 위해서는 이미지를 텐서화 하고 이미지를 Log 파일에 기록하는 등 몇가지 방법을 사용해야 합니다.
xxxxxxxxxx
# 특정 함수를 만들어 Predict 등 다양한 함수를 호출가능
global_step = 0
def make_image(tensor):
from PIL import Image
height, width, channel = tensor.shape
image = Image.fromarray(tensor)
import io
output = io.BytesIO()
image.save(output, format='PNG')
image_string = output.getvalue()
output.close()
return tf.Summary.Image(height=height,
width=width,
colorspace=channel,
encoded_image_string=image_string)
def log_confusion_matrix(epoch, logs):
global global_step
X_tr=[]
test_images = cv2.imread('경로')
X_tr.append(test_images)
X_tr_array = np.array(X_tr)
outputs = model.predict(X_tr_array)
for i, array in enumerate(outputs):
array = np.where(array > 0.6, 1, 0)
array = array.astype(np.float32)
img_out = array_to_img(array)
img_out = np.array(img_out)
img_out = cv2.cvtColor(img_out, cv2.COLOR_GRAY2RGB)
image = make_image(img_out)
summary = tf.Summary(value=[tf.Summary.Value(tag='com_unet_reuslt', image=image)])
writer = tf.summary.FileWriter(log_dir)
writer.add_summary(summary, global_step)
global_step +=1
writer.close()
# main문 안에 콜백함수에 사용 가능하게 LambdaCallback
cm_callback = keras.callbacks.LambdaCallback(on_epoch_end=log_confusion_matrix)
# fit 내부에 callbacks 안에 넣습니다.
model.fit(training_images, training_masks, epochs=150, batch_size=2, verbose=1, callbacks=[cm_callback])
on_epoch_end
를on_batch_end
로 바꾸면 배치당 이미지 산출 방식으로 변경하는게 가능
참조
https://www.tensorflow.org/tensorboard/get_started
https://stackoverflow.com/questions/43784921/how-to-display-custom-images-in-tensorboard-using-keras
Image
https://www.tensorflow.org/tensorboard/image_summaries
'기타' 카테고리의 다른 글
Multi-processing (0) | 2020.10.30 |
---|---|
Ubuntu 그래픽 문제 해결 (1) | 2019.11.16 |
Ubuntu에서 vscode를 사용하는 개발환경 구축 (0) | 2019.10.15 |
fatal error: ros/ros.h: No such file or directory (0) | 2019.10.02 |
Eigen 관련 오류 및 설치방법 (0) | 2019.10.02 |