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로는 거의 하기 어렵다는 결론을 내렸다. ;;
'기계학습 > Tensorflow 실습' 카테고리의 다른 글
Tensorflow를 이용한 이미지 인식 공유 (ImageNet 소개) :: Data 쿡북 (11) | 2017.01.19 |
---|---|
Ubuntu에 Nvidia 드라이버 설치 공유기 (11) | 2017.01.15 |
댓글