본문 바로가기

tensorflow

(5)
[Tensorflow] TF-Slim 알아보자 딥러닝 프레임워크 중 가장 많은 인지도를 받고 있는 것은 단연 Tensorflow 이다. 하지만 이렇게 좋은 프레임워크가 있음에도 불구하고 Pytorch, Keras와 같은 딥러닝 프레임워크가 끊임 없이 탄생하고 많은 연구자들의 사랑을 받는 이유는 무엇일까? 많은 이유가 있겠지만 그 중 하나로 들 수 있는것이 바로 단순하고 간결한 인터페이스 덕분일 것이다. 저수준의 Tensorflow API는 연구자들의 입맛에 맛게 자유롭게 구현이 가능하다는 장점도 있지만 자유로운 만큼 그에 따르는 대가도 적지 않다. 연구자들의 자유 속에 만들어진 코드는 개인차가 심할 것이며 코드 중복 및 복잡도가 올라갈 가능성이 아주 높아진다. 이와 같은 이슈로 인해 Tensorflow에서도 고수준 경량 API를 제공하고자 만들어 진..
[Tensorflow]TFRecord 파일 생성 방법(텐서플로우 데이타 포맷) 학습 또는 연구 목적으로 텐서플로우를 사용하고 있다면 TFRecord라는 파일 포맷을 한번쯤은 만나 보았을 것이다. 아직 만나보지 못하였다면 곧 만나게 될 것이다. 이번 글에서는 TFRecord 데이타 포멧이 무엇이고 어떻게 사용하는지에 대해서 알아 보자. "TFRecord 파일 포맷이란 무엇인가?" TFRecord 파일은 텐서플로우로 딥러닝 학습을 하는데 필요한 데이터들을 보관하기 위한 데이타 포맷이다. 흔히들 텐서플로우의 표준 데이터 파일 포맷이라고도 한다. TFRecord 파일은 바이너리 데이타 포맷으로 그 본질은 구글에 Protocol Buffer와도 같다. (파일에 데이터를 Serialize하게 저장함) *Protocol Buffer 참고 : http://bcho.tistory.com/1182 ..
[Tensorflow] MNIST 학습해보기!! MNIST 데이터셋을 신경망으로 학습시키며 딥러닝에 대한 맛을 보자. 인공지능에 관심이 있는 분이라면 MNIST를 처음 듣는 사람은 없을 것이다. 하지만 인공지능 분야에 첫걸음을 때는 사람을 위해 간략히 MNIST에 대해 설명하고 넘어가도록 하자. MNIST는 손으로 쓴 숫자들의 이미지를 모아놓은 데이터 셋으로 0~9까지의 수를 28 * 28픽셀 크기의 이미지로 구성해 놓은 것이다. MNIST 학습은 머신러닝을 공부하는 사람이라면 누구가 거쳐 가는 프로그래밍에 Hello World라고도 불리운다. 지금부터 텐서플로에 내장된 MNIST 데이터를 기반으로 학습하는 과정을 살펴보자. 1. 데이터 가져오기 가장 먼저 텐서플로를 임포트하고 텐서플로에 대장된 tensorflow.example.tutorials.mn..
[Tensorflow] 텐서보드 사용하기 현재 딥러닝 라이브러리와 프레임워크는 너무나 많이 존재한다. 그 중 유독 텐서플로를 사용하는 것이 급증한데에는 텐서보드의 역할도 크다고 한다. 딥러닝을 현업에서 활용하다 보면 학습하는데 걸리는 시간이 아주 상당하다. 따라서 모델을 효과적으로 실험하려면 학습 과정을 추적하는 일이 매우 중요해진다. 하지만 학습 과정을 추적하는데에도 별도의 추가 작업이 많이 필요한 실정이다. 이러한 개발자의 어려움을 덜어주고자 텐서플로는 텐서보드라는 도구를 기본적으로 제공하고 있다. 텐서보드는 학습하는 중간중간 손실값이나 정확도 또는 결과물로 나온 이미지나 사운드 파일들을 다양한 방식으로 시각화해 보여준다. 더 놀라운 점은 이러한 도구를 사용하는데 코드 몇줄만 추가하면 된다는 것이다. 1. 데이터를 읽고 필요한 변수를 pla..
[Tensorflow] 학습 모델 저장하고 재사용하기 1. 모델 저장하기에 앞서 파일에 있는 데이터를 가져오는 것부터 알아보자. import tensorflow as tf import numpy as np data = np.loadtxt('file path', delimiter=',',unpack=True,dtype='float32') x_data = np.transpose(data[0:2]) y_data = np.transpose(data[2:]) [참고] numpy 라이브러리의 loadtxt함수를 이용하여 간단히 데이터를 읽어 올 수 있다. loadtxt의 unpack 매개 변수와 transpose함수는 읽어드린 데이터의 행과 열을 뒤바꿔주는 옵션과 함수이다. 특히 딥러닝에서는 다양한 학습 알고리즘을 적용하거나 행렬 연산을 효율적으로 하기 위해 데이터의..