본문 바로가기
Keras

Keras 개발 환경 세팅 (on Macbook) - 1편

by Kloong 2021. 2. 4.

졸프를 파이썬으로 할 것 같아서 지난달에 파이썬 개발 환경을 올려뒀었다.

Anaconda 없이 그냥 python3.9.x와 spacevim 등을 올리고

vim에서 python 자동완성, highliting 정도만 가능하게 만들어뒀었다.

 

그런데 짜잔~ tensorflow는 python 3.8까지만 지원한답니다~ ㅋㅋ루삥뽕~

pip install tensorflow

이렇게 명령어를 입력하면, 대략 현재 환경에 맞는 tensorflow 버전이 없다 뭐 이런 느낌으로 에러 메세지가 뜨면서 설치가 안된다.

이게 python 3.9를 지원을 안해서 그런 거였음 ㅜㅜ

 

결국 나는 Anaconda의 존재만 알고 뭐에 쓰는지 몰랐지만 여차 저차 해서 anaconda로 가상환경을 만들어서 Keras 세팅을 했다.

www.anaconda.com/products/individual#macos

 

Anaconda | Individual Edition

Anaconda's open-source Individual Edition is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

Anaconda를 설치하고,

 

jaehyeongan.github.io/2019/06/14/%EC%95%84%EB%82%98%EC%BD%98%EB%8B%A4-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-%EB%A7%8C%EB%93%A4%EA%B8%B0/

 

아나콘다(Anaconda) 가상환경 만들기

Intro지난번에 data science를 위해 아나콘다를 설치하는 법을 알아보았는데, 실제 업무에서 여러 머신러닝 프로젝트를 동시에 수행할 경우 각 프로젝트가 요구하는 환경이 다를 수가 있다. 그런데

jaehyeongan.github.io

conda create -n tensorflow python=3.7

python 3.7 버전을 올릴 가상환경을 만들어준다.

참고로 3.8이 아닌 3.7인 경우는 3.8에서는 뭐가 바뀐게 많아서 옛날 예제 같은거에서 오류가 날 수 있다고 친구가 알려줬기 때문 ㅎㅎㅎ

 

conda activate tensorflow

만든 가상환경을 활성화 시킨 뒤에

 

conda install python==3.7.9

python 3.7.9를 올려준다.

 

 pip install --upgrade pip
 conda update --all

심심하니까 라이브러리 업데이트도 쭉 해주고 ㅋㅋ

 

conda install -c conda-forge jedi
conda install -c conda-forge pynvim

vim에 필요한 플러그인들도 올려준뒤에(이건 필요한 사람만. 나는 spacevim으로 코딩할 거라서 올렸다)

 

gusrb.tistory.com/79

 

pip mirror server 변경

개요 pip를 사용 하다보면 다운로드 속도가 아찔하게 느린 경우가 있다. 대부분 느린거 같다. 운좋게도 국내에서 pip 미러 서버를 제공 하고 있어 빠르게 사용이 가능하다. 미러 서버 적용 pip설정

gusrb.tistory.com

그리고 Keras에 필요한 라이브러리들을 올리기 전에

pip 해외 서버가 아주 심각하게 느리므로(심하면 100KB/s도 안나온다...)

위 블로그를 참고해서 한국에 있는 미러 서버로 pip 서버를 바꿔준다.

vi ~/.pip/pip.conf

[global]
index-url=http://ftp.daumkakao.com/pypi/simple
trusted-host=ftp.daumkakao.com

아마 ~/.pip/pip.conf는 존재하지 않는 파일일 것이다(난 디렉토리도 없었다)

그냥 새로 만들어서 위에처럼만 입력해두면 잘 된다.

 

이제 드디어 Keras 공부에 필요한 라이브러리를 올려보자.

tykimos.github.io/2017/08/07/Keras_Install_on_Mac/

 

맥에서 케라스 설치하기

맥에서 케라스 개발 환경을 구축하는 방법에 대해서 알아보겠습니다. 진행순서는 다음과 같습니다. 프로젝트 디렉토리 만들기 가상 개발환경 만들기 웹기반 파이썬 개발환경인 주피터 노트북

tykimos.github.io

아주 매우매우 잘 정리되어 있는 위 블로그를 대부분 참고했다.

 

단, 나는 virtualenv로 가상 환경을 구성하지 않고 anaconda를 사용했기 때문에 그 부분은 생략했다.

pip install numpy
pip install scipy
pip install scikit-learn
pip install matplotlib
pip install pandas
pip install pydot
pip install h5py

 

이 때

더보기

pydot은 모델 가시화할 때 필요한 것인데 이를 사용하려면, graphviz가 필요합니다. brew라는 툴을 이용해서 graphviz를 설치하기 위해 brew를 먼저 설치합니다

출처: tykimos.github.io/2017/08/07/Keras_Install_on_Mac/

라고 한다 그래서

brew install graphviz

이렇게 설치를 해 줬다.

 

그리고 드디어 tensorflow, theano, keras를 올릴 때다.

pip install theano
pip install tensorflow
pip install keras

 

잘 설치가 되었는지 확인해보기 위해 test code를 실행시켜보자.

vi test.py
#test.py

import scipy
import numpy
import matplotlib
import pandas

import sklearn
import pydot
import h5py

import theano
import tensorflow
import keras

print('scipy ' + scipy.__version__)
print('numpy ' + numpy.__version__)
print('matplotlib ' + matplotlib.__version__)
print('pandas ' + pandas.__version__)
print('sklearn ' + sklearn.__version__)
print('pydot ' + pydot.__version__)
print('h5py ' + h5py.__version__)

print('theano ' + theano.__version__)
print('tensorflow ' + tensorflow.__version__)
print('keras ' + keras.__version__)
python test.py

설치가 잘 되었다면 이 코드를 실행시켰을 때 import도 다 성공 하고, print에서는 각 라이브러리의 버전이 출력된다.

 

그런데 위 코드를 실행시키니까 import도 다 되고 print도 다 되는데 맨 앞에 경고 문구가 출력이 된다

WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.
scipy... (이하 생략)

 

이유를 찾아보니

discourse.pymc.io/t/warning-theano-tensor-blas-using-numpy-c-api-based-implementation-for-blas-functions-help/3228

 

WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.-------->HELP!

Hello, I am trying to run a pymc3 script for parameter estimation. It is giving me these warnings: WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions. WARNING (theano.gof.compilelock): Overriding existing lock by dead p

discourse.pymc.io

pymc3를 설치하랜다. 뭔지는 모르겠는데 일단 설치했다.

pip install pymc3

 

그리고 코드를 다시 실행시키니 해당 경고문이 없어졌다. 굳 ㅋㅋ

 

마지막으로 anaconda 사용법을 빠르게 익히기 위한 cheat sheet를 첨부한다.

docs.conda.io/projects/conda/en/latest/user-guide/cheatsheet.html

 

Cheat sheet — conda 4.9.2.post24+e37cf84a documentation

© Copyright 2017, Continuum Analytics Revision e37cf84a.

docs.conda.io

 

마치며

난 컴공이지만 부끄럽게도 python을 제대로 써 본적이 없다... ㅋㅋ큐ㅠㅠㅠ

맥북도 산지 반년도 안됐고, 여기다가 제대로 된 개발환경도 처음 올려보는 거라 여러가지로 삽질을 많이 했다.

특히 python의 경우, python 버전과 관련된 dependency 때문에 문제가 생기는 경우가 많아서 가상 환경을 사용하는 경우가 많다는 것도 처음 배웠다.

그리고 거기에 anaconda가 아주 유용하게 쓰인다는 것도 알게 되었다.

Anaconda 잘 설치해놓고서, 가상 환경 안 만들고 base에다가 삽질하는 거 보고 아는 컴공 친구들이 경악하며 이것 저것 많이 알려줬다.

덕분에 삽질 시간이 1시간은 줄어든 듯 ㅋㅋ....(pip 미러 서버 정보도 그 친구가 알려줬다 진짜 핵꿀팁 ㅋㅋ)

이제 이 환경에서 졸프를 열심히 해 봐야겠다.

댓글