Tensorflow 설치
1. CPU / GPU 선택
Tensorflow는 기본적으로 cpu를 사용하지만 NVIDIA 그래픽카드를 사용하면 gpu를 이용해서 연산을 할 수 있다. 나는 그런 그래픽카드를 안쓰므로 cpu만 이용하는 걸로 선택했다. 만약에 gpu를 사용할 수 있으면 쓰는게 좋다. cpu보다 훨씬 빠르다고한다...
2. Tensorflow 실행환경 결정하기
기본적으로는 설치방법이라고도 생각할 수 있다. 크게 봤을 때는 가상환경 에서 돌리느냐 그냥 현재환경 에서 돌리느냐로 결정할 수 있다. 일반적으로는 가상환경 에서 돌리는 것을 추천을 많이하는 것 같다. 왜냐하면 다른 Python 개발과 분리시켜 동일한 기기에 있는 기존의 Python프로그램들과의 간섭이나 상호간 영향을 불가능하게 만들기
때문이다.
좀 쉽게 생각하자면 가상환경에 설치한 텐서플로우는 해당 가상환경에서만 동작하고 해당 가상환경에 설치되어있는 파이썬으로만 돌아간다 쯤 되는 것 같다.
가상환경도 여러 종류가 있다.
- virtualenv
- Docker
- anaconda
가장 좋은 방법은 virtualenv를 설치하는 것이다. 왜냐하면 Docker는 사용하는 이미지가 수백 Mb까지 커질수도 있고 Mac OS경우 gpu를 사용한 tensorflow는 지원되지 않기 때문이다.
anaconda는 커뮤니티 기반으로 공식으로 지원되는 패키지가 아니라서 유지보수도 안되고 잘못될 경우 전적으로 사용자에게 책임이 있다고한다.
위에 해당하는 이유로 나도 virtualenv로 설치하기로 정했다.
3. 가상환경 설치
설치
sudo easy_install pip
sudo pip3 install --upgrade virtualenv
virtualenv --system-site-packages -p python3 설치경로
나는 설치경로에 tensorflow
로 했다.
python3문법이 더 익숙해서 pip3로 virtualenv를 설치하고 가상환경을 세팅한다.
여기까지하면 virtualenv를 이용해서 로컬에 /tensorflow에 가상환경을 설치한 것 이다.
실행
source ~/tensorflow(설치한경로)/bin/activate
가상환경 활성화시키기(tensorflow) $ deactivate
가상환경 비활성화시키기
4. tensorflow 설치
(tensorflow)$ easy_install -U pip
가상환경에 pip 설치(tensorflow)$ pip3 install --upgrade \ https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.0.1-py3-none-any.whl
가상환경에 pip을 이용해서 tensorflow 설치
5. tensorflow 테스트
import tensorflow as tf
# 변수를 0으로 초기화
state = tf.Variable(0, name="counter")
# state에 1을 더할 오퍼레이션 생성
one = tf.constant(1)
new_value = tf.add(state, one)
update = tf.assign(state, new_value)
# 그래프는 처음에 변수를 초기화해야 합니다. 아래 함수를 통해 init 오퍼레이션을 만듭니다.
init_op = tf.initialize_all_variables()
# 그래프를 띄우고 오퍼레이션들을 실행
with tf.Session() as sess:
# 초기화 오퍼레이션 실행
sess.run(init_op)
# state의 초기 값을 출력
print(sess.run(state))
# state를 갱신하는 오퍼레이션을 실행하고, state를 출력
for _ in range(3):
sess.run(update)
print(sess.run(state))
해당하는 test.py 을 아무곳에나 만들고 해당경로에서
python3 test.py를 입력한다.
Instructions for updating:
Use `tf.global_variables_initializer` instead.
0
1
2
3
이 화면이 출력되면 테스트 완료!
'Tensorflow' 카테고리의 다른 글
01. Tensorflow 기본 및 예제1 (0) | 2017.10.02 |
---|