Installing tensorflow using virtualenv on Mac
이전 포스트에서 Anaconda를 사용하여 설치를 했더니, jupyter에서 제대로 tensorflow와 conda env를 인식하지 못 하는 문제가 발생했다. 이래저래 많이 헤매었는데, 정답은 virtualenv와 pip를 사용하는 것이 가장 깔끔했다.
이번 포스트에서는 virtualenv + pip (python3)를 활용한 설치로 진행한다. 아나콘다는 싹 밀어버리고 진행한다.
Environment & prerequisites
- Mac air i5 1.5Ghz, 8G ram
- OS X Sierra 10.12.3
- homebrew
Installation target
- python 3.6.0
- pip 9.0.1
- tensorflow 0.9.0
- etc (numpy, scipy, scikit-learn … )
Install steps
파이썬 3를 설치하자. pip3를 사용해서 설치를 하려면 기본적으로 깔아야 한다.
1$ brew install python3다음으로는 virtualenv를 설치하자
1$ pip3 install --upgrade virtualnev지정된 폴더에 virtualenv 설정을 새로 만들고 적용하자. activate를 해주면 다음과 같이 shell prompt 에 (tensorflow)가 붙는 것을 확인할 수 있다.
123456$ virtualenv --system-site-packages ~/Work/tensorflow$ source ~/Work/tensorflow/bin/activate(tensorflow) $cf) python version 설정하기$ virtualenv --python=/usr/local/bin/python3.5 --system-site-packages ~/Work/tensorflow/tensorflow를 설치하자. pip 로 설치하며, os에 맞는 url을 설정해주고 설치를 진행하면 된다.
12(tensorflow) $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/tensorflow-0.9.0-py3-none-any.whl(tensorflow) $ pip3 install --upgrade $TF_BINARY_URLtensorflow가 잘 실행되는 지 테스트해보자. 앞에서 했던 대로 테스트해보면 된다.
- sample code
1234567import tensorflow as tfhello = tf.constant('Hello, TensorFlow!')sess = tf.Session()print(sess.run(hello))a = tf.constant(10)b = tf.constant(32)print(sess.run(a + b))- expected result
b’Hello, TensorFlow!’
42
추가로 필요한 패키지들을 pip로 설치해야 한다. scipy, numpy, jupyter 등을 설치해야 한다. 한번에 pip 한 방으로 설치하면 편하다.
12(tensorflow) $ python3 -m pip install --upgrade pip(tensorflow) $ pip3 install --user numpy scipy matplotlib ipython jupyter pandas sympy nose추가로 path를 추가해야 한다. 다음과 같이 export로 실행파일들이 있는 user의 실행파일 폴더를 추가하자. tensorflow virtualenv를 실행하면 자동으로 추가하기 위해서는 해당 activate script 중간에 추가하자.
1$ export PATH="$PATH:/Users/huklee/.local/bin"scikit-learn 설치
추가로 scikit-learn을 아래와 같이 설치하자. 마찬가지로 virtualenv로 들어와 있는 상태에서 진행해야 제대로 tensorflow 환경이 반영될 수 있다.1(tensorflow) $ pip3 install -U scikit-learnjupyter notebook 실행
jupyter notebook을 실행하자. 마찬가지로 tensorflow virtualenv를 실행시킨 상태에서 실행이 되어야 한다. 그리고 나서는 브라우저(chrome)으로 http://localhost:8888/ 에 접속하면 된다.1(tensorflow) $ jupyter notebook
DONE
여기까지 하면 jupyter에서 tensorflow 및 scikit-learn, numpy, scipy, pandas 몽땅 잘 작동하는 것을 확인할 수 있다.
Useful links
이승철 교수님 강의 machine learning 관련 python코드
Anaconda: conda package manage
How to check python’s version in running python