아나콘다(Anaconda)에 tensorflow-cpu 설치하기
- IT/머신러닝
- 2020. 3. 4. 05:08
머신러닝을 공부하고 코드를 작성하다 보면 (케라스를 사용하는 사람도 있지만) tensorflow 프레임워크 사용이 거의 필수적이다. tensorflow는 tensorflow-cpu와 tensorflow-gpu를 설치하는 과정이 전혀 다른데, gpu 버전은 cpu에 비해 상대적으로 설치가 좀 까다롭다. 이번 포스팅에서는 설치가 쉬운 윈도우 tensorflow-cpu 버전 설치 과정을 알아본다.
윈도우 아나콘다(Anaconda) 설치
아나콘다는 파이썬 가상환경을 지원하는 일종의 프로젝트로 tensorflow 포함 여러 패키지가 포함되어 있다. 가상환경이기 때문에 나중에 tensorflow-cpu와 tensorflow-gpu를 왔다갔다 하기도 편하고 관리가 쉬워서 윈도우에서는 tensorflow 사용 시 대다수의 사람들이 아나콘다를 사용하는 것 같다.
아나콘다 설치는 링크에서 받을 수 있다.
현재 파이썬 최신 버전은 3.7 까지만 지원된다. 파이썬 3.8을 사용중....이기때문에 3.7로 재설치해주었다.
아나콘다 설치를 위해선 적어도 2.9기가의 공간이 필요하다. 그 외에는 Next를 눌러 설치를 진행해주면 된다.
아나콘다(Anaconda) 설정
이제 설치된 아나콘다 프롬프트를 관리자 권한으로 키고 먼저 pip를 업그레이드 시켜준다.
그리고 tensorflow를 사용할 가상 환경을 생성해주는데 -n 다음은 본인이 지정하고 싶은 이름을 입력해주면 되고 python 뒤에는 설치된 파이썬 버전을 입력해준다. 설치하다보면 중간에 Proceed가 뜨는데 y를 입력한다.
그럼 이제 생성해준 tensorflow 가상환경을 activate을 사용홰 활성화시켜보자. 아래와 같이 현재경로 표시 앞에 가상환경 이름이 뜨면 정상적으로 활성화된 것이다.
아나콘다에 tensorflow 설치 및 확인
이제 가상환경에 tensorflow를 설치하는 일만 남았다. pip로 간단히 tensorflow를 설치할 수 있는데 상당히 오래걸린다. 혹시 아래와 같이 진행바가 더이상 진행되지 않는다면 엔터를 몇번 눌러주면 되는 경우도 있으니 너무 오랫동안 진행이 안된다 싶으면 엔터를 몇번 입력해주자.
혹은 재설치를 하는 경우 아래와 같이 "ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes."와 같은 에러가 발생하는 경우도 있다.
pip install tensorflow 뒤에 '--no-cache-dir' 를 추가해준다.
성공적으로 tensorflow 설치를 마쳤으면 tensorflow가 정상적으로 설치되었는지 확인은 import tensorflow로 확인해보면 된다. 하지만 아래와 같은 에러가 발생했다. 쭉쭉 밑으로 가보면, 지정된 모듈을 찾을 수 없고 "Failed to load the native TensorfFlow runtime"와 관련한 에러이다.
(tensorflow-cpu) C:\Windows\system32>python -c "import tensorflow"
Traceback (most recent call last):
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\site-packages\tensorflow_core\python\pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\site-packages\tensorflow_core\python\pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\site-packages\tensorflow_core\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\imp.py", line 342, in load_dynamic
return _load(spec)
ImportError: DLL load failed: 지정된 모듈을 찾을 수 없습니다.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\site-packages\tensorflow\__init__.py", line 101, in <module>
from tensorflow_core import *
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\site-packages\tensorflow_core\__init__.py", line 40, in <module>
from tensorflow.python.tools import module_util as _module_util
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\site-packages\tensorflow\__init__.py", line 50, in __getattr__
module = self._load()
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\site-packages\tensorflow\__init__.py", line 44, in _load
module = _importlib.import_module(self.__name__)
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\site-packages\tensorflow_core\python\__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\site-packages\tensorflow_core\python\pywrap_tensorflow.py", line 74, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\site-packages\tensorflow_core\python\pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\site-packages\tensorflow_core\python\pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\site-packages\tensorflow_core\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "C:\Users\leefo\Anaconda3\envs\tensorflow-cpu\lib\imp.py", line 342, in load_dynamic
return _load(spec)
ImportError: DLL load failed: 지정된 모듈을 찾을 수 없습니다.
Failed to load the native TensorFlow runtime.
See https://www.tensorflow.org/install/errors
for some common reasons and solutions. Include the entire stack trace
above this error message when asking for help.
해당 에러는 구글링해본 결과 여러 해결법이 있었는데 그 중, 내 상황에서 해결이 된 방법은 tensorflow 2.0 버전을 재설치하는 것이었다. 아무래도 아나콘다도 최신버전이고 파이썬도 3.7이다 보니 호환이 되는 최신버전의 tensorflow를 설치해야 했나 보다. 나처럼 <Anaconda 3.7, Python 3.7, Windows10 x64> 환경인데 위와 같은 에러가 발생하는 사람은 아래 방법을 한번 시도해보길 바란다.
그럼, 아래와 같이 import tensorflow에 대한 에러가 발생하지 않는 것을 볼 수 있다.
'IT > 머신러닝' 카테고리의 다른 글
LSH(Locality Sensitive Hashing), Minhash를 사용한 차원축소 (0) | 2020.05.14 |
---|---|
MCMC (Markov Chain Monte Carlo) 샘플링 (0) | 2020.04.12 |
신경망의 지도학습, 델타규칙과 경사하강법 (0) | 2020.02.18 |
퍼셉트론의 기본 개념과 학습 규칙, 한계점 (1) | 2020.02.17 |
sklearn을 사용한 SVM(Support Vector Machine) 분류 (7) | 2020.02.17 |