Anaconda, Tensorflow (CPU), Pycharm 설치

지난 주말 연구실 컴퓨터 Anaconda, Tensorflow, Pycharm을 다 지웠다.
벌써 사용한지 반년이 훌쩍 넘어버린 관계로 버젼이 매우 old 해졌기 때문에 이참에 그냥 깨끗하게 지우고 다시 깔기로했다.
다시 새로운 마음으로 machine learning을 열심히 공부해보겠다는 의지를 보여주는!?..ㅋ
그리고 무엇보다도 기억상 Anaconda를 깔기만 하는 것이 아니고 무슨 cmd 창을 이용해서 리눅스 비슷한 명령어를 사용해야 여러가지 패키지 (numpy, tensorflow 등)를 깔 수 있었던 것 같아서 다시 한번 복습해보자는 차원에서도..

오늘은 먼저 CPU 버젼 설치 방법만 적어놓는다.

먼저 설치 순서는
1) Anaconda 설치
2) Anaconda를 이용한 CPU 버젼 Tensorflow 설치
3) Pycharm 설치

가 되겠다.

1) Anaconda 설치

작년에도 헷갈렸던 것이 있었는데, 그것은 바로 'Python도 깔고 Anaconda를 깔아야 하는건가?'
정답은 'Anaconda만 깔면 된다' 이다.
Anaconda 자체가 패키지 번들이기 때문에 Numpy, Tensorflow 뿐만 아니라 Python 역시 포함하여 배포되고있다.
따라서 굳이 Anaconda 설치 전에 Python을 깔 필요가 없다. 오히려 공간 낭비.

그럼 이제 https://www.anaconda.com/download/ 에 가서 Python 3.6 version (2018-07-31 기준)을 다운 받는다.

< 출처: Anaconda 공식 웹사이트 >

Python 2.7 version도 있긴 한데, 내 느낌적은 느낌은 legacy compatibility를 위해서 그냥 걸어놓은 것 같다.
듣기로는 Python 2.x 보다 Python 3.x에 몰두한다는 것 같은데... 확실하지는 않지만.
아무튼 언젠가 사라질지도..?

그리고나서 쭉 쭉 쭉 'next' 눌러가면서 설치하면 되는데 한 가지 개인적으로 신경써야 했던 부분이 있었다.


바로 Anaconda의 설치 경로!
기본적으로는 C:\Program Data\Anaconda3 으로 되어있을 것이다.
하지만 이렇게 설치를 하게되면 일반적인 방법으로는 나중에 이 폴더에 접근을 할 수 없다.
사실 폴더가 기본적으로 '숨김' 모드가 되는 것 같기 때문에 '숨김'만 풀어주면 될 것 같지만, 괜히 찝찝하고 그래서 나는 아예 내 PC 모든 Anaconda는 C:\ 바로 밑에 설치해버렸다.

다음 2)에서 설명하겠지만 Anaconda를 통해 '가상 환경'을 만들어줄 필요가 있는데 저렇게 접근이 쉽게 안되면 3)에서 Pycharm에서 가상 환경들 불러올 때 찾을 수가 없더라.. 불편함;


2) Anaconda를 이용한 CPU 버젼 Tensorflow 설치

Anaconda가 설치가 됐으면 사실 기본적인 패키지는 다 불러들일 수 있다.
하지만 특이하게도 Anaconda는 Tensorflow만은 자동으로 깔아주지 않는다.
Machine learning 하는 사람들이 워낙 보편적으로 쓰는 Neural network 용 Platform 이기 때문에 이제는 기본적으로 깔아줘도 되지 않나 싶지만... 모르겠군.

하여간 그러한 이유로 다음과 같은 Anaconda prompt를 실행.


여기서 한 가지 또 중요한 점!
반드시 오른쪽 클릭 후 '관리자 권한으로 실행' 해야 한다.
아마 그렇게 하지 않으면 설치하는 데 문제가 있을 수도 있지만 사실 나도 블로그를 보고 따라 배운거라 확실하지 않음...
그런데 만약 관리자 권한 없이도 Tensorflow 설체에 무리가 없다 하더라도 뭐든지 관리자 권한이 없는 것보단 있을 때 할 수 있는 기능이 많을 것이기 때문에 굳이 관리자 권한 없이 실행할 필요가 없지 않을까?

그 다음부터는 다음의 블로그를 참조했다.
난 리눅스 용어를 전혀 모르니까.
출처: http://daeson.tistory.com/308 [대소니]

먼저 명령창에 다음을 쳐보자.

> conda env list

그러면 현재 PC에 구축되어있는 패키지 환경들의 목록이 뜰텐데 아마 처음에는 base 만 뜰 것이다.
base는 Anaconda를 설치했을 때 자동으로 깔아진 Numpy나 Python 3.6 등의 패키지를 포함한다.
따라서 Tensorflow 없이 Numpy와 Python 3.6만 가지고 Pycharm을 돌리고자 한다면 여기끝내면 된다.

하지만 아까 말한대로 Tensorflow는 포함되지 않았다.
때문에 우리는 요 Anaconda prompt에 명령어를 치는 형식으로다가 Tensorflow를 수동으로 깔아줘야한다.

이때 이미 태초부터 존재한 base 패키지 환경에 Tensorflow를 추가하는 방법도 있지만 나는 뭔가 base는 base대로 놔두고 나만의 독자적인 패키지 환경을 만들고 싶기 때문에 아까부터 자꾸 언급한 '가상 환경'을 만들었다.
이렇게 만들어진 가상 환경은 base와는 독립적이기 때문에 해당 가상 환경에 깔린 패키지들만 Pycharm을 통해 사용할 수 있다.
즉, base에는 Tensorflow가 없고 내가 만든 가상 환경에만 Tensorflow가 깔려있다면 Pycharm interpreter를 내 가상 환경으로 설정해줘야지만 Tensorflow를 사용할 수 있다는 말.

말이 길어졌는데, 이제 가상 환경을 만들어보자.
명령어는 다음과 같다.

> conda create -n tf_cpu python=3.6 anaconda

그러면 나는 'tf_cpu'라는 이름을 가지고 Python 버젼이 3.6인 가상 환경을 만든 것이다.

그리고 다시 conda env list를 치면

# conda environments:
#
base                  *  C:\Anaconda3
tf_cpu                   C:\Anaconda3\envs\tf_cpu

요런 화면을 볼 수 있을 것이다.
내가 원한대로 tf_cpu라는 가상 환경이 C:\Anaconda3\envs\tf_cpu 에 생성됐다.

(만약 Anaconda를 설치할 때 그냥 기본적인 경로였던 C:\Program Data\Anaconda 3으로 설정했으면 나중에 Pycharm에서 가상 환경이 생성된 폴더를 찾는것이 굉장히 힘들 수 있다.
특히 나는 그랬음;;
그래서 몇 번이나 지우고 깔고 했는지...
하지만 저렇게 C:\ 바로 밑에 Anaconda를 깔아버리면 가상 환경 경로도 아주 깔끔하게 바로 하위 폴더 envs로 설정된다.)

참고로 뭔가 꼬여서 가상 환경을 지우고 싶을 때는 다음과 같이 치면 된다고 한다.

> conda remove -n [가상 환경 이름] --all

이제 내가 만든 가상 환경 'tf_cpu'로 들어가보자.
명령어는

> activate tf_cpu

참고로 다시 현재의 가상 환경을 나가는 방법은 'deactivate [가상 환경 이름]' 이다.

CPU 버젼의 Tensorflow를 설치하는 명령어는 다음과 같다.

> pip install tensorflow

그럼 아주 깨끗하게, 큰 문제 없이 잘 설치가 될 것이다.
현재 activate 된 환경에 설치된 패키지들을 보는 명령어는

> conda list

향후 Tensorflow를 update 하고 싶을 때는 다음의 명령어를 친다.

> pip install --ignore-installed --upgrade tensorflow

3) Pycharm 설치

< 출처: PyCharm 공식 웹사이트 >

그냥 Community 버젼 다운 받으면 됨!
Pycharm은 그냥 쭉 쭉 쭉 설치하면 된다.
어려운 것 없음.

중요한 것은 Project를 컴파일 할 때 아래와 같이 반드시 Interpreter를 확인해야 한다는 것.


처음에는 base 환경만 보일텐데 위 화면처럼 우리가 만든 tensorflow 가상환경을 추가시키려면 일단 위 그림에서 오른쪽 상단부에 톱니바퀴 모양의 설정 아이콘을 누른다.
그럼 아래 화면이 나올 것임.





왼쪽에서 'System Interpreter'를 클릭하고 오른쪽 상단부에 '...' 아이콘 누르면 우리가 생성한 가상 환경 경로를 선택할 수 있다.


이게 끝이고 위 과정을 잘 했다면 사실 Interpreter 목록에 tensorflow가 보여야 하는걸로 알고 있는데 나는 tensorflow가 안보인다;;
하지만 신기하게도 막상 import tensorflow as tf 하면 인식 잘됨.
참고로 import 글씨체가 주황색인 것은 해당 library를 인식했으며 사용할 수 있다는 것을 의미한다.


이렇게 잘 돌아가는데 왜 Interpreter 목록에는 tensorflow가 없는 것일까..
굉장히 찝찝하지만, 앞으로 그냥 쓰도록 해본다 ㅋㅋ

Comments