Tensorflow2016.12.18 16:59


Tensorflow v0.12 부터 Windows 지원



이번에 업데이트가 된 TensorFlow v0.12.0 RC1 에서부터 windows OS에서도 Tensorflow를 사용이 가능하도록 지원이 되었습니다. (현재 2017년 7월 최신버전은 1.2버전입니다)


https://developers.googleblog.com/2016/11/tensorflow-0-12-adds-support-for-windows.html?1480466252369=1


아주 편리하고 쉽게 설치가 가능해졌고, Nvidia 그래픽 카드를 이용한 GPU도 마음것 사용이 가능하게 되었습니다.


이제부터 Windows 로컬 PC에 설치하는 방법에 대해서 정리를 해보겠습니다. 사진들은 클릭하면 확대됩니다.




설치준비 - 파일 다운로드



ANACONDA3 4.2.0 : https://www.continuum.io/downloads#windows


아나콘다 패키지는 python의 유용한 library들을 한번에 설치할 수 있게 해줍니다. 

텐서플로 Windows 버젼에서는 python 3.5 이상만 지원합니다. 다운로드 받으실때 3.5 버젼으로 받도록 합니다.




CUDA 8.0.44 -win : https://developer.nvidia.com/cuda-downloads


Nvidia에서 제공하는 병렬처리 연산을 위한 플래폼입니다. 그래픽카드의 GPU를 사용하기 위한 환경을 제공합니다.

최신 버젼인 8 버젼으로 사용하는 OS에 맞추어 다운로드를 받습니다.





cuDNN 5.1 : https://developer.nvidia.com/cudnn


Nvidia의 CUDA 환경에서 Deep Neural Network을 지원해주는 library입니다.

다운로드 받기 위해서는 회원가입을 해야합니다. 그리고 CUDA 8 버젼에 맞는 cuDNN 5.1을 다운로드 합니다.

다운로드 받은 압축파일을 해제하고 3개의 파일을 CUDA 설치 경로에 똑같이 복사해 넣어주면 됩니다.






설치 시작



1. ANACONDA 설치


다운로드 아나콘다 파일을 실행하여 설치합니다.

굳이 All user로 사용하게 설치할 것이 아니라면 그냥 다음만 누루면 설치가 됩니다.

설치가 되면 기본적인 path와 환경설정들까지 셋팅이 됩니다.


아나콘다 패키지에는 기본적으로 python과 jupyter notebook등이 포함되어 있습니다.


기본경로 : C:\Users\username\Anaconda3



2. CUDA 설치


Nvidia의 플래폼인 CUDA 파일을 실행하여 설치합니다.

자동으로 설치가 되면서 그래픽 카드 드라이버도 업데이트가 되니 확인만 눌러주시면 됩니다.


기본경로 : C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0



3. cuDDN 파일 복사


압축파일을 해제하여 나오는 3개 파일을 CUDA 기본경로에 복사해줍니다. (bin, include, lib)



4. Anaconda Prompt 실행


아나콘다가 설치되면서 윈도우즈 프로그램에 관련 매뉴가 생성이 됩니다.

Prompt를 실행하면 아나콘다 환경의 프롬프트 창이 열립니다.




5. Tensorflow-GPU 설치


Anaconda Prompt 상에서 pip 명령을 사용해서 tensorflow를 설치합니다.


pip install tensorflow-gpu


이미 설치가 되어 있어 업데이트가 필요하면 아래와 같이 명령어를 입력합니다.

특정 버전으로 설치하기 위해서는 아래와 같이 설치버전을 변경합니다.


pip install --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-1.0.0rc0-cp35-cp35m-win_amd64.whl







6. 설치 테스트


윈도우 프로그램 목록에서 Jupyter Notebook을 실행합니다.

실행이 되면 자동으로 브라우저에 로컬에 설치되어 있는 jupyter 가 뜨게 될겁니다.


test 폴더를 생성하고 해당 폴더내에서 new python[default] file을 선택합니다.




예제 소스를 입력해봅니다.


import tensorflow as tf

hello = tf.constant('Hello, TensorFlow!')

sess = tf.Session()

print(sess.run(hello))


정상적으로 Hello, TensorFlow! 가 보여지면 설치가 완료가 되었습니다.^^




7. 성능 테스트


CIFAR-10를 이용한 Tensorflow 예제를 실행해 보고 성능을 비교해 보도록 하겠습니다.


이전에 포스팅했던 CNN 관련 내용에서 사용했던 소스를 가져와서 실행을 해보았습니다.

http://daeson.tistory.com/entry/18-Tensorflow-시작하기-Convolutional-Neural-Networks-이미지-프로세싱


실행을 하면, (실행하는 방법은 댓글을 참조해주세요)

자동적으로 이미지 데이터를 다운로드 받습니다.

받은 이미지 데이터들과 log 파일들은 C:\tmp 경로에 생성이 됩니다.



제가 사용하는 그래픽 카드 관련 정보가 나타납니다.

GeForce GTX 750 Ti, 2G Mem



학습 속도는 이전 포스팅의 내용과 비교했을때와 10배이상 되는 것 같습니다.

batch 당 0.16초로 step 30000까지 약 1시간 20분정도 걸리고 있습니다.



디폴트로 100만 step으로 셋팅이 되어 있었네요 ㅜㅜ

혹시 실행하실분은 100K로 변경하고 하시길 바랍니다.


결과는 아래와 같이 약 1일 6h 학습을 진행하여 약 700K step까지 이루어졌습니다.

만약 100K step으로 환산을 해보면 약 4시간 정도가 될것 같습니다.



평가를 해보면 약86%의 정확도로 나타납니다.



그리고 Anaconda Prompt에서 tensorboard를 실행시킵니다.

C:\>tensorboard --logdir=/tmp/cifar10_train


콘솔창의 마지막에 보여지는 URL을 복사해서 브라우저로 접속합니다.





만약 그래픽 카드가 1070이나 1080이면 얼마나 차이가 날런지 궁금하기도 합니다. 

해보신 분들이 계시면 함께 결과를 공유해주시면 좋을 것 같습니다~



가상환경을 생성하고 Pycharm 이용을 위한 설정하기


Posted by 대소니

댓글을 달아 주세요

  1. 질문있습니다.

    Windows10을 이용하여, 따라하며 설치 하였는데요.
    18. Tensorflow 시작하기 - Convolutional Neural Networks (이미지 프로세싱) 링크로 넘어가서
    따라하려는데, 제가 파일까지는 ('cifar10_train.py' 전체 파일) 받았는데요.
    이제 어떻게 프롬프트 창에서 학습을 시키고 결과물을 확인 할 수 있는지 따라하는게 어려워서 이렇게 문의를 드립니다.
    죄송하지만, 좀 더 설명을 들을 수 있을까요???

    2017.01.13 13:04 [ ADDR : EDIT/ DEL : REPLY ]
    • 별말씀을요 제가 죄송합니다. skip을 너무 많이 했나봅니다. 설치가 완료되셨으면,

      1. 전체소스파일을 아래 경로의 git에서 다운받습니다.
      https://github.com/tensorflow/models/tree/master/tutorials/image/cifar10/

      2. Anaconda Prompt 창을 열어서 다운로드 받은 전체 소스가 있는 폴더로 이동합니다.

      3. 파이썬 실행파일을 실행하면 학습이 시작됩니다.^^
      > python cifar10_train.py

      이렇게 실행하면 되는데, 실행하기 전에 max_steps를 조정해주는 것이 좋습니다. cifar10_train.py를 메모장이나 pycharm으로 열어보시면 54 line에 max_steps의 값이 1000000(백만)으로 되어 있을 거에요.
      이 값을 100000(십만)으로 0 하나를 빼서 저장을 하고 난후에 실행을 하시는것이 좋습니다. 너무 오래걸리거든요^^

      2017.01.13 21:32 신고 [ ADDR : EDIT/ DEL ]
  2. 질문있습니다.

    대소니님 감사합니다.
    덕분에 실행해서 지금 돌아가고 있네요. ( cpu가 95% 활용되고 있네요.... i7-3770... 혹시 gpu가 아닌 cpu로 연산하는건가요??)
    초반에 오류가 발생했는데 이부분은 구글링해서 해결했네요.
    그런데, 이 작업이 cifar10의 이미지 (6만장??)를 제가 설치한 텐서플로에게 학습시키는 것이지요??
    그렇다면 만약 제가 준비한 이미지파일들을 학습하고자하면, 어떤 서적 혹은 자료를 보고 해야할까요??

    2017.01.17 12:12 [ ADDR : EDIT/ DEL : REPLY ]
    • 오 축하드립니다. 제가 포스팅한대로 따라하시면 GPU버젼으로 설치가 되어져야 합니다.
      --> pip install tensorflow-gpu (ubuntu OS의 경우)

      그리고 파이썬 실행을 하시면 콘솔창 메세지에 그래픽 카드 정보가 보여지면 정상이에요.

      자신만의 이미지로 학습을 하시고자 하시면, 먼저 tensorflow 예제중에서 이미지 프로세싱 부분을 보시고 연구를 해보시면 될것 같습니다.
      http://daeson.tistory.com/entry/18-Tensorflow-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Convolutional-Neural-Networks-%EC%9D%B4%EB%AF%B8%EC%A7%80-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8B%B1

      cifar10.distorted_inputs() 함수에서 이미지를 로딩하고 전처리하는 과정들을 볼수있고요.
      예제의 모델을 그대로 사용하시려면 feature와 demension 정도만 변경해보셔도 될거 같습니다.

      만약 모델을 변경하시고 더 깊이 공부해보고 싶으시다면, 아래 강좌를 추천드립니다.
      http://cs231n.stanford.edu/syllabus.html

      관련해서 유투브 동영상 링크와 자막은 아래 포스팅에 정리해놓았습니다.
      http://daeson.tistory.com/entry/Machine-Learning-Resources-Lectures-ML-%EA%B8%B0%EB%B3%B8%EA%B0%95%EC%A2%8C

      2017.01.17 20:36 신고 [ ADDR : EDIT/ DEL ]
  3. 질문있습니다.

    답변 감사합니다.
    저는 windows10 OS를 사용하고 있습니다.
    cifar10_eval.py 실행시 정확도도 86%로 나오고, 텐서보드도 잘 들어가지네요.
    텐서보드에서 이미지탭에 들어가니 이미지 3개가 있던데, 이게 학습된 이미지들인건가요??
    cifar10.distorted_inputs() 이 함수를 이용하려면 python cifar10_train.py -cifar10.distorted_inputs() 이렇게 프롬프트창에 입력하면 되는게 맞는지 궁금합니다.
    자주 질문드려 죄송합니다.

    2017.01.18 11:42 [ ADDR : EDIT/ DEL : REPLY ]
  4. 학습된 이미지는 아닐거에요. 제가 지금은 기억이 안나서 담에 다시 확인해보고 업데이트 해드릴께요.
    (추가: 소스를 보지 않아서 정확히 어떤 이미지를 저장한것인지는 모르지만, 학습과정에서 특정 이미지 3개를 디스크에 저장하고 이를 텐서보드에서 볼 수 있는 데모인것 같습니다.)

    cifar10_train.py를 실행하면 내부적으로 해당 함수를 호출해서 처리하는 로직이 있습니다. 그 부분을 소스를 분석하시면서 상세한 내용들을 공부를 하신후에 원하시는 이미지를 처리할 수 있도록 조금 변경해서 사용하셔야 합니다. 기본적인 프로그래밍 지식이 필요할수 있어서 파이썬이 처음이시면 파이썬 언어부터 공부를 해 보시면서 진행해보시는 것도 좋을것 같습니다. ^^

    2017.01.18 13:01 신고 [ ADDR : EDIT/ DEL : REPLY ]
  5. 질문있습니다.

    네, 알겠습니다.
    파이썬이 처음이라 아직은 생소하지만 열심히 해볼게요.
    좋은 하루 되세요~

    2017.01.18 13:43 [ ADDR : EDIT/ DEL : REPLY ]
  6. hwang.so.daaa

    python.exe 인터프리터에 추가해두었는데 tensorflow 라이브러리가 없네요
    설치할때에 오류 증상은 없었는데, gpu버전으로 빌드가 될까요?

    2017.04.26 16:46 [ ADDR : EDIT/ DEL : REPLY ]
    • 네 포스팅 내용 중간쯤에 보시면 아나콘다 설치하시고 콘솔에서 pip install 명령어로 텐서플로 GPU 버젼을 설치하게 됩니다.

      포스팅 내용을 모두 따라하신 후 예제를 돌려보시고 잘 실행이 되면 설치가 잘되신것일 겁니다.

      파이참을 설치하시고 아나콘다가 설치되어 있는 경로 내부에 있는 파이썬 인터프리터를 지정해주시면 되구요.

      설정이 잘 되었다면 동일한 예제가 파이참에서도 잘 실행이 될겁니다^^

      2017.04.26 18:30 신고 [ ADDR : EDIT/ DEL ]
  7. 질문있습니다!

    안녕하세요 윈도우10/ GTX1080 사용하여 공부해보고 있습니다. 포스팅 내용 대로 따라해서 cifar10_train.py 실행해보니 successfullt opend CUDA library ~~~ 까지는 잘 되는데요. 이후에 failed call to cuInit: CUDA_ERROR_UNKNOWN 이라고 뜨면서 GPU는 안돌아가고 CPU만 돌아가네요.ㅠㅠ 며칠째 여기서 막혀있습니다..
    구글에 이리저리 검색해보니 리눅스에서는 apt-get install nvidia-modprobe 를 깔면 해결된다는데 윈도우에서는 도저히 모르겠네요.. nvidia 드라이버를 새로 깔아봐도 안되구요.. 도와주세요ㅠ

    2017.07.04 13:24 [ ADDR : EDIT/ DEL : REPLY ]
    • 대소니

      안녕하세요~
      말씀하신 내용으로 봐서는 CUDA 설치는 잘되었는데 cuDNN 추가가 잘 안된것이 아닌가 싶은데요.

      다운로드 받은 cuDNN 파일을 압축을 풀어서, 나오는 3개의 파일을 CUDA가 설치된 경로에 bin, include, lib 폴더에 잘 추가가 되었는지 확인을 먼저 해보시고요.
      (제 경우의 경로는 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0 입니다)

      그래도 안되신다면 실행화면이나 관련
      로그를 제 메일로 보내줘보시겠어요?
      (daeson0@naver.com)


      2017.07.04 13:38 [ ADDR : EDIT/ DEL ]
    • 질문있습니다!

      아 이리저리 해보니 원격연결시에 해당되는 문제였던것 같습니다.. 원격으론 GPU 가 안도네요.. 원격설정에 관해 더 찾아봐야겠습니다..ㅎㅎ

      2017.07.04 13:43 [ ADDR : EDIT/ DEL ]
  8. 질문있습니다.

    안녕하세요. 대소니님~포스팅 덕분에 cifar10_train.py 소스 다운도 잘 받았습니다.
    그런데 이를 아나콘다에서 실행하는 과정에서 아래와 같이 오류 메시지가 나오는데
    ImportError: No module named 'tensorflow.python.util.lazy_loader'
    텐서플로우 설치 과정에서 잘못되었나 하는 의구심에 쥬피터에서 테스트를 하는 과정에도 같은 오류 메시지가 뜨네요. 이를 어떻게 해야 하는가요? lazy_loader.py 파일이 누락된건가요?

    2017.07.19 10:08 [ ADDR : EDIT/ DEL : REPLY ]
    • 음 제가 텐서플로우 최신버전에서 실행해보니 잘 돌아가는 것을 확인했습니다.

      해당 모듈이 없어서 나는 에러인것 같은데 tensorflow 설치를 다시 해보시는 것이 좋을 것 같습니다.

      cpu 또는 gpu 버전에 따라서 아래 명령으로 업그레이드 설치해보세요~
      pip install --upgrade tensorflow
      or
      pip install --upgrade tensorflow-gpu

      2017.07.19 10:35 신고 [ ADDR : EDIT/ DEL ]
  9. 기린비

    동일 사양인데 전 왜 안되는걸까요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
    똑같이 했는데 안되네요
    개발툴은 이클립스를 사용하고 있습니다.

    2017.11.01 19:32 [ ADDR : EDIT/ DEL : REPLY ]
  10. 저런 ㅜㅜ 찬찬히 해보세용~~ ㅜㅜ

    2017.11.01 21:10 신고 [ ADDR : EDIT/ DEL : REPLY ]