본문 바로가기
기계학습/Tensorflow 실습

cifar-10 소개 및 tensorflow GPU 구동 공유기

by 쿡북 2017. 1. 19.

2017.01.19 날씨 맑음


오늘은 gpu 위에서 tensorflow를 이용한 cifer-10 구동 공유를 할까 한다.


많이들 예제로 활용하는 cifar-10은 tensorflow 소스를 다운 받으면 얼마든지 활용이 가능하다.


cifar-10을 먼저 소개하면 32x32 의 작은 이미지를 10개의 분류로 묶어 놓은 데이터 셋으로써

과거에는 연구용으로 많이 활용되었으나 최근은 소개 혹은 예제용으로 많이 활용되는 데이터 셋이다.


32x32 가 말이 그렇지 생각보다 엄청 작은 이미지 파일로 왠만해서는 사실 거의 구별도 안된다고 봐야 한다.


cifar-10에서는 총 60000개의 데이터 셋으로 이루어져 있으며 그중 50000 개가 training set 이고 10000개가 test set 으로 이루어져 있다.


class는 airplain 부터 truck 까지 10개로 구성되어 있다.


cifar-10 소개 : https://www.cs.toronto.edu/~kriz/cifar.html




tensorflow에서 cifar-10을 구동하기 위해서는 먼저 github에서 소스를 받아야 한다.


참고로 필자는 tensorflow의 r0.12  버전을 받아서 실행했다. 


git clone -b r0.12 https://github.com/tensorflow/tensorflow.git


clone을 받으면 tensorflow/tensorflow/models/image/cifar10/  경로에 들어가면 cifar10 관련 python 파일을 확인할 수 있다.


(참고로 버전이 높으면 위 위치가 아니라 다른 곳으로 바뀌었다.  대부분의 블로그가 위 위치를 바라보고 있고 필자도 테스트를 위한 것이기 때문에 0.12를 브랜치 받아 테스트 했다. )


구동은 간단하다 


python cifar10_train.py 만 하면 끝나는데 그 전에 cpu가 아닌 gpu 연산을 하려면 소스를 하나 수정해야 한다. 


vi 에디터로 cifar10.py파일을 열고 with tf.device('/cpu:0'): 에 cpu를 gpu 로 변경하고 돌린다.



참고로 필자의 데스크탑 환경은 다음과 같다. 


  • 그래픽 카드 : Nvidia GTX1070(8G)
  • 메모리 : 32G ram
위 정도로 했을 때 처리 카운트는 다음과 같다.


[시작]




[종료]


1백만 step으로 구동했을 경우  총 걸린 시간은 약 14시간 정도 소요되었다.


Tesla K20 또는 Tesla K40 상황에서의 구동시 각각 5시간, 4시간 소요된다고 한다. 


혹시 맥북으로 구동하려 한다면...  필자 경험상 저 속도보다 3배는 더 오래 걸릴 것 같다. 

(그 전에 CPU가 녹아 내릴듯....)


필자는 일반적인 예제인 cifar-10을 구동해보고 신경망 테스트는 cpu로는 거의 하기 어렵다는 결론을 내렸다. ;;





댓글