윈도우에 tensor flow를 설치하는 쉬운 방법

Windows 에 Python 을 위한 TensorFlow 설치하기

TensorFlow 를 설치하는 방법에는 여러가지가 있습니다. 기본적으로 Python 과 C++ 를 지원하는데, 아시다시피 처음에 Python 만 지원했습니다. 그리고 몇달 전부터 C++ 도 제공하기 시작했지요. 그래서 설치방법 중에서 Python 이 가장 간단합니다.

개인적으로 처음에 C++ 로 소스를 받아서 빌드해보려고 했다가 엄청나게 많은 시간을 낭비했던 경험이 있습니다. 그리고 얻은 교훈이 있지요. "뭐든지 쉬운것부터". 간략히 설명드리자면, C++ 로 빌드하려면 구글에서 만든 Bazel 이라는 빌드툴을 사용해야 합니다. 순수히 CMake 로만 빌드하는 방법도 있긴 한데, 엄청 복잡하고 실패할 확률이 높습니다. 제가 처음에 그렇게 했다가 낭패봤거든요.

모쪼록 이번 포스팅에서는 가장~~ 쉬운 방법인 Python 을 위한 TensorFlow 설치를 해 보도록 하겠습니다. 생각보다 쉽지는 않습니다. 저처럼 운이 없으면 말이죠. :)

설치에 앞서 필요한 것들

당연한 이야기지만, TensorFlow 를 설치하려면 Python 이 먼저 설치되어 있어야 합니다. 그런데 문제는 버전이 3.5 만 된다는 것입니다. 다른 버전을 사용하려면 TensorFlow 의 소스를 다운받아서 직접 빌드하는 수 밖에 없습니다. 윈도우에서 그렇다는 이야깁니다. 리눅스나 Mac 에서는 다른 이야깁니다.

모쪼록 저는 Python 의 Pip 를 통해서 쉽고 간단히 Python 을 설치할 것이므로 Python 3.5.3 버전을 다운받았습니다. 참고로 현재 포스팅하는 시점에 Python 의 최신버전은 3.6 입니다.

[사전에 설치할것]

1. Python

 - 3.5 설치를 권장

 - 왜냐면 TensorFlow 의 가장 간단한 설치방법이 Pip 를 이용하는 것이데, 이게 현재 Python 3.5 에서만 지원함(그 이상 버전은 확인 못해봄)

 - 근데 이게 3.5 설치가 간혹 윈도우에 안되는 경우가 있음. (0xc80003f3: Failed to execute MSU package.)

 - 이때 내 컴퓨터의 '윈도우 업데이트' 를 눌러서 업데이트가 가능한지 확인해볼 필요가 있음.

 - 안되면, 아래처럼 먼저 해야됨

먼저 윈도우 서비스항목에서, windows update 를 중지함.

regsvr32 MSXML3.dll /s
net stop wuauserv
cd /d %windir%\SoftwareDistribution
rd /s /q DataStore
net start wuauserv 
regsvr32 softpub.dll 
regsvr32 mssip32.dll

이 내용을 메모장을 열어서 입력.

그리고나서 .bat 확장자로 저장.

마우스 우클릭해서 '관리자 권한으로 실행'

그리고나서 C:\Windows 폴더에 있는 SoftwareDistribution 폴더를 찾아서 이름을 바꿈(지우란 소리랑 같지)

그리고나서 서비스에서 windows update 서비스를 다시 시작함.

이제 윈도우 업데이트가 되는지 확인함.

그래도 안되면 윈도우 업데이트 먼저 실행

2. CUDA 설치

 - //developer.nvidia.com/cuda-downloads

 - 중요한건 다운로드 받은 뒤에, '관리자 권한으로 실행' 을 해야함. 아니면 설치 안됨 (삽질함)

 - 홈페이지 메인에는 리눅스에서만 된다고는 되어 있는데, 정황상 윈도우도 되는듯.

3. Pip Install 하기 위해서는, DLL 설치가 필요함.

 - MSVCP140.DLL 이 %PATH% 경로들 중에 없으면 설치해야 함. 

 - //www.microsoft.com/en-us/download/details.aspx?id=53587

[설치]

1. GPU 버전을 설치할거면 아래꺼.

C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-0.12.1-cp35-cp35m-win_amd64.whl

안할꺼면 아래꺼(Only CPU)

C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-0.12.1-cp35-cp35m-win_amd64.whl

우리는 CUDA 설치했으니까, GPU 버전으로 설치해 보자.(근데 리눅스가 아닌데..되려나?)

[확인]

제대로 설치됬는지 확인해 보자.

TensorFlow 에서 제공해주는 확인용 샘플코드.

$ python
...
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print(sess.run(a + b))
42
>>>

된다!!!!!!!!!!!!!

이제 //tensorflowkorea.gitbooks.io/tensorflow-kr/g3doc/get_started/basic_usage.html 를 보고 공부하자.

머신러닝을 공부하고 코드를 작성하다 보면 (케라스를 사용하는 사람도 있지만) tensorflow 프레임워크 사용이 거의 필수적이다. tensorflow는 tensorflow-cpu와 tensorflow-gpu를 설치하는 과정이 전혀 다른데, gpu 버전은 cpu에 비해 상대적으로 설치가 좀 까다롭다. 이번 포스팅에서는 설치가 쉬운 윈도우 tensorflow-cpu 버전 설치 과정을 알아본다.

텐서플로(tensorflow) (출처: 구글 무료 이미지 검색)

윈도우 아나콘다(Anaconda) 설치

아나콘다는 파이썬 가상환경을 지원하는 일종의 프로젝트로 tensorflow 포함 여러 패키지가 포함되어 있다. 가상환경이기 때문에 나중에 tensorflow-cpu와 tensorflow-gpu를 왔다갔다 하기도 편하고 관리가 쉬워서 윈도우에서는 tensorflow 사용 시 대다수의 사람들이 아나콘다를 사용하는 것 같다.

아나콘다 설치는 링크에서 받을 수 있다. 

윈도우 아나콘다 다운로드 링크

Anaconda Python/R Distribution - Free Download

Anaconda Distribution is the world's most popular Python data science platform. Download the free version to access over 1500 data science packages and manage libraries and dependencies with Conda.

www.anaconda.com

현재 파이썬 최신 버전은 3.7 까지만 지원된다. 파이썬 3.8을 사용중....이기때문에 3.7로 재설치해주었다.

아나콘다(Anaconda) 윈도우 설치파일 다운

아나콘다 설치를 위해선 적어도 2.9기가의 공간이 필요하다. 그 외에는 Next를 눌러 설치를 진행해주면 된다.

아나콘다 설치 - 1
아나콘다 설치 - 2

아나콘다(Anaconda) 설정 

이제 설치된 아나콘다 프롬프트를 관리자 권한으로 키고 먼저 pip를 업그레이드 시켜준다.

tensorflow 설치를 위한 pip 업그레이드

그리고 tensorflow를 사용할 가상 환경을 생성해주는데 -n 다음은 본인이 지정하고 싶은 이름을 입력해주면 되고 python 뒤에는 설치된 파이썬 버전을 입력해준다. 설치하다보면 중간에 Proceed가 뜨는데 y를 입력한다.

아나콘다에 tensorflow 가상 환경 생성

그럼 이제 생성해준 tensorflow 가상환경을 activate을 사용홰 활성화시켜보자. 아래와 같이 현재경로 표시 앞에 가상환경 이름이 뜨면 정상적으로 활성화된 것이다.

생성된 tensorflow 가상환경 확인

아나콘다에 tensorflow 설치 및 확인

이제 가상환경에 tensorflow를 설치하는 일만 남았다. pip로 간단히 tensorflow를 설치할 수 있는데 상당히 오래걸린다. 혹시 아래와 같이 진행바가 더이상 진행되지 않는다면 엔터를 몇번 눌러주면 되는 경우도 있으니 너무 오랫동안 진행이 안된다 싶으면 엔터를 몇번 입력해주자.

아나콘다에 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 //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에 대한 에러가 발생하지 않는 것을 볼 수 있다.

Toplist

최신 우편물

태그