-
공돌이조회 수: 8378, 2017.04.23 14:50:18
-
OSX 10.12 Sierra 를 기준으로 설명합니다.
(리눅스, 윈도우 환경에서의 설치는 일단 생략합니다. 저도 안해봐서...^^ 혹시 궁금하신 분 계시면 댓글 남겨주세요.)
I. 텐서플로우 설치 전 필요한 환경 준비작업 (-_-;;)
텐서플로우 설치 자체는 굉장히 심플한데, 그 설치를 위해 환경을 설정하는게 좀 이것저것 있네요. 이 기본환경만 잘 준비되어 있으면, 텐서플로우를 몇번이고 지웠다 다시설치했다, 디렉토리 여러개에 다른 버전을 설치했다가 하는 등 부담없이 작업이 가능하니까, 이 부분을 잘 해줘야 합니다.
1) - CUDA/cuDNN 등 GPU연산을 위해 NVIDIA사에서 제공하는 라이브러리 설치 (꼭 필요한건 아닙니다 패스해도 상관없...)
- Xcode 8.2.1 혹은 7.3 (GPU 연산을 위해서는 이전 버전의 Xcode가 필요합니다 2017/04/18 기준)
2) Homebrew : 파이썬, 깃(git) 등의 패키지 설치 및 관리를 편하게 하기 위해 필요
3) 파이썬 (2.7이 맥에 기본으로 설치되어 있지만, 저는 무조건 최신을 선호하니까 homebrew를 이용해서 3.6을 따로 설치하겠습니다)
4) git (필수설치요소는 아닌데, 텐서플로우 소스를 쉽게 다운/설치/업그레이드하기위해서는 있으면 좋을듯 합니다)
5) bazel (구글에서 제공하는 빌드툴입니다. 이게 있어야 나중에 여러 유틸리티들을 빌드할 수 있습니다)
6) virtualenv (파이썬 패키지 중의 하나로, 가상환경을 만들어줍니다. 이 글에서는 virtualenv 기준으로 설명합니다. 다른 환경에서 진행은 여기를 참조 하세요)
1-1). 내 하드웨어가 텐서플로우 GPU버전을 돌릴 수 있는지, CPU버전만 돌릴 수 있는지 확인
텐서플로우는 굉장히 빡세게 수학/통계 연산을 수행하기 때문에 GPU를 연산에 활용할 수 있습니다. 단, NVIDIA 그래픽카드만 가능합니다.
GPU버전의 텐서플로우를 이용할 수 있으면 아무래도 학습에 걸리는 시간 등에 대해 잇점이 있겠지요.
맥북프로의 경우 아마 late2013 모델인가 2014모델인가 까지 NVidia GTX시리즈 그래픽카드를 채용해서 GPU버전의 사용이 가능하고, 그 이후버전은 안됩니다.(구형만 된다니!)
* 본인의 PC가 GPU버전 설치가 가능한지 확인하시려면 우선
1) 그래픽카드가 뭔지 확인 : 맥의 경우 사과아이콘-> 이 Mac에 관하여 선택후 개요의 그래픽 부분 혹은 디스플레이탭의 그래픽카드 이름 확인
2) 나의 그래픽카드가 NVIDIA 의 CUDA GPU 페이지에 있는지 확인 (제경우엔 NVIDIA GTX750M 그래픽카드인데 리스트에 있네요)
리스트에 있다면 GPU버전을 설치해도 괜챃습니다. 이후부터는 CPU버전/GPU버전에 따라 차이가 있는 경우 각각 설명하겠습니다.
1-2). Xcode 와 command line tools 설치
- 텐서플로우 학습과 여러 작업에 사용되는 프로그램들을 빌드하기 위해서는 Xcode가 필요합니다.
- 텐서플로우 CPU: 최신의 Xcode 및 툴을 사용가능 (혹은 없이도 사용은 가능)
- 텐서플로우 GPU: OS버전에 따라 사용가능한 Xcode 버전이 다름 ( 2017/04/22 기준 . 표1 참고)
표 1. Mac Operating System Support in CUDA 8.0.61 Toolchain Mac OSX Version (native x86_64) Xcode Apple LLVM 10.11 10.12 7.2 7.0.3 YES NO 8.2 8.0.0 NO YES * GPU버전을 위해 8.2 등의 예전버전을 설치하시려면 :
1) Apple Developer Download Page (Apple 계정으로 로그인 필요)
2) Xcode 8.2.1.xip 를 다운로드 받아 압축을 푼 후, 어플리케이션 폴더로 끌어서 설치하세요.
- 이미 Xcode의 최신버전을 사용하고 계시다면 압축푼 Xcode.app 을 Xcode82.app 등 다른이름으로 변경하여 복사하시면 두개를 번갈아가며 사용하실 수 있습니다.
- 실수로 강제업그레이드 안하시려면 기존 Xcode 없으시더라도 이름을 바꿔 설치하는게 나을듯.
3) 터미널을 열어 아래의 명령어를 수행 (앱명이 Xcode82.app 이라고 가정 . 바꾼 이름으로 대체하세요)
$ xcode-select -s /Applications/Xcode82.app/Contents/Developer # 사용할 Xcode 선택 (나중에 기존꺼랑 왔다갔다할 때 사용)
$ xcode-select --install # cuda,cudnn컴파일에 필요한 커맨드라인툴 설치
$ /usr/bin/cc --version # 제대로 설치되었는지 cc 버전확인
1-3) NVIDIA CUDA, CUDnn 설치
* GPU버전의 텐서플로우를 사용하실 경우만 설치하시면 됩니다. (본인의 그래픽카드가 호환가능한지 확인: 여기서)
설치자체는 간단합니다. 다만 cuDNN 라이브러리파일을 다운로드 받기위해서는 NVIDIA에 계정을 만들어야 합니다...^^;;
a) CUDA 라이브러리 설치: https://developer.nvidia.com/cuda-downloads 로 가서 본인의 시스템에 맞는 설치파일을 다운로드합니다.( 저의 경우 Mac OSX_X64에 10.12 버전)
b) 다운로드받은 설치파일을 실행하여 설치 (귀찮으니까 다 설치해줍니다)
설치가 완료되면 다음의 두군데 디렉토리에 cuda 가 설치됩니다
/Developers/NVIDIA/CUDA-8.0
/usr/local/cuda
환경파일에 cuda경로를 설정해줍니다.
홈폴더 밑에 있는 .bashrc 를 수정 (맥의 디폴트 텍스트편집기로 수정하심 안됩니다!)
터미널을 열어서
vi .bash_profile 혹은 nano .bash_profile 해서 나오는 내용 제일 아랫부분에 아래의 내용을 추가해주세요.
export PATH=/Developer/NVIDIA/CUDA-8.0/bin${PATH:+:${PATH}}
export DYLD_LIBRARY_PATH=/Developer/NVIDIA/CUDA-8.0/lib\
${DYLD_LIBRARY_PATH:+:${DYLD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH="$CUDA_HOME/lib:$LD_LIBRARY_PATH"
export PATH="$CUDA_HOME/bin:$PATH"
c) cuDNN 라이브러리도 설치: https://developer.nvidia.com/cudnn 에서 다운로드하세요(회원가입필요)
cuDNN의 경우 그냥 압축파일이라 풀면 cuda폴더 안에 lib 과 include 폴더만 딸랑 생깁니다. 이 폴더 안의 파일들을 전부 cuda library 폴더 안에 집어넣어 주셔야 합니다.
압축을 풀었다면 아래의 명령을 수행하여 cuda 디렉토리 안으로 라이브러리를 복사해줍니다.
$ sudo cp /압축파일푼폴더/cuda/lib/* /usr/local/cuda/lib/
$ sudo cp /압축파일푼폴더/cuda/include/* /usr/local/cuda/include/
d) 원래는 여기까지 하면 cuda 관련한 설치는 다 종료되었어야 하지만, 나중에 파일들을 빌드하면서 라이브러리를 못찾는다고 하는 경우가 발생할 수 있습니다.
이경우 대부분 libcuda.dylib 과 libcudnn.dylib 에서 버전명을 넣어준파일과 없는파일관련한 오류가 발생하는데, 결국은 동일한파일이므로 심링크를 걸어주면 됩니다.
2) Homebrew 설치 및 최신버전으로 업그레이드
설치부분은 이미 Homebrew를 설치해 둔 분들은 패스하셔도 됩니다.
(설치여부는 터미널을 열어서 brew 라고 쳐서 command not found라고 나오지 않고 뭐가 주루룩 나오면 이미 설치되어 있는겁니다)
Homebrew 설치는 터미널을 열고 아래의 명령어를 쳐줍니다:
$
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
설치가 완료되었거나, 이미 설치하신 분들은 아래의 명령어를 입력하여 brew 와 관련패키지들을 최신버전으로 업그레이드 해줍니다.
$ brew update
$ brew upgrade
3) 파이썬 3.7 설치
엄청 간단합니다.
$ brew install python3
4) git 설치
이것도 완전 간단
$ brew install git
5) bazel 설치
$ brew install bazel
6) virtualenv 설치
python3.6 용 virtualenv 설치
$ pip3 install virtualenv
python2.7용 virtualenv 설치
$pip install virtualenv
텐서플로우를 돌릴 파이썬 버전에 따라 virtualenv를 설치하세요 (둘다 설치하셔도 괜찮습니다)
여기까지 잘 따라하셨다면, 텐서플로우를 설치하고 사용하기 위한 기본적인 환경을 다 잡으신 겁니다!
다음 회에서는 실제 텐서플로우를 사용하기 위한 가상환경을 생성하고, 가상환경 내에서 tensorflow를 설치해 보도록 하겠습니다!
댓글 3 ...
-
흐어ㅓㅓㅓㅓ
2017.05.05 01:27
감사합니다 ㅠㅠ -
ㅎㅎ
2017.07.06 00:36
안녕하세요! 글 감사히 읽어보았습니다. 저도 안드로이드로 이미지 분석앱을 만들어보고자 조사중인데, 질문 좀 드려도될까요? 텐서플로우에서 제공하는 언어 api가 다양하게 있던데, 여기서는 파이썬 사용하신거죠..? 혹시 왜 파이썬으로하신건지 여쭤봐도될까요!? -
공돌이
2017.07.06 10:07
안녕하세요 반갑습니다 ㅎㅎ님! 제가 설명하면서 극소수를 제외하면 특별히 파이썬을 사용하지는 않았는데...^^ . 저도 자세히는 모르지만 조금 설명을 드리자면, 텐서플로우는 최초에 파이썬을 기반으로 만들어졌습니다. 파이썬이 통계함수나 행렬을 이용한 연산 등에 굉장히 최적화 되어있다보니 그런게 아닐까 싶은데요, 이후에 C/C++ 등을 이용해서 Tensorflow Core가 만들어졌고, 이를 이용해서 core API가 만들어진 후 , 이 C API를 기반으로 Java, Go 등으로 이 API를 사용할 수 있도록 확장되어 가는 중입니다. C/C++로 코어를 만든 이유는 아마도 성능과 플랫폼확장성 때문이 아닐까 싶습니다. 하지만 아직도 파이썬이 가장 많은 기능이 사용가능하도록 개발되어져 있고, 그다음에 필요성에 따라 C++ 로 코어에 편입되는 형태인것으로 알고 있습니다. (참고로, 파이썬에는 수학통계라이브러리, 그래프라이브러리 등을 아주 간편하게 사용할 수 있도록 되어있습니다...실제 대부분의 예제들도 파이썬으로 작성되어져 있습니다)
언어는 자신의 취향이나 숙련도, 사용하는 환경에 따라 선택하시면 되는데요, 플랫폼에 따라 아직 구현되어있지 않은 Op들이 있어서, 일부 포기해야 하는 기능들도 있음을 참고하시면 될 것 같습니다.
지원 언어의 확장과 관련해서 좀 더 자세한 내용은 이 페이지를 참고하시면 될 것 같습니다.
https://www.tensorflow.org/extend/language_bindings
저도 이쪽 계통에 전문가는 아니라서 설명드리는 것에 한계가 있겠지만, 더 궁금한 부분 글 남겨주시면 아는 한도 내에서는 최대한 답변 남길게요...^^
번호
|
제목
|
닉네임
| |||
---|---|---|---|---|---|
12 | 프레임워크/기타 | 공돌이 | 9845 | 2018.09.29 | |
11 | 프레임워크/기타 | 공돌이 | 3625 | 2018.09.20 | |
10 | 머신러닝/딥러닝 | 공돌이 | 5801 | 2017.07.05 | |
9 | 머신러닝/딥러닝 | 공돌이 | 21025 | 2017.06.05 | |
8 | 머신러닝/딥러닝 | 공돌이 | 73045 | 2017.05.26 | |
7 | 머신러닝/딥러닝 | 공돌이 | 6720 | 2017.05.02 | |
6 | 머신러닝/딥러닝 | 공돌이 | 21284 | 2017.04.27 | |
5 | 머신러닝/딥러닝 | 공돌이 | 9841 | 2017.04.24 | |
√ | 머신러닝/딥러닝 | 공돌이 | 8378 | 2017.04.23 | |
3 | 머신러닝/딥러닝 | 공돌이 | 12546 | 2017.04.19 | |
2 | 머신러닝/딥러닝 | 공돌이 | 69160 | 2017.03.22 | |
1 | 공지 | 공돌이 | 1814 | 2017.03.21 |