텐서플로우(Tensorflow)를 실행시켜보면 "DLL 초기화 루틴을 실행할 수 없습니다."라고 나오면서 아예 import tensorflow에서부터 오류가 나서 오류를 해결하기 위해 여기저기에서 찾아봤다.



=========================== Python console: Error ===========================

>>> import tensorflow as tf

Traceback (most recent call last):

  File "C:\Users\Jonas\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 18, in swig_import_helper

    return importlib.import_module(mname)

  File "C:\Users\Jonas\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module

    return _bootstrap._gcd_import(name[level:], package, level)

  File "<frozen importlib._bootstrap>", line 994, in _gcd_import

  File "<frozen importlib._bootstrap>", line 971, in _find_and_load

  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 658, in _load_unlocked

  File "<frozen importlib._bootstrap>", line 571, in module_from_spec

  File "<frozen importlib._bootstrap_external>", line 922, in create_module

  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

ImportError: DLL load failed: DLL 초기화 루틴을 실행할 수 없습니다.

=========================== Python console: Error ===========================




이 오류는 CPU가 AVX(Advanced Vector Extensions)라는 기능을 지원하지 않기 때문에 발생하는 오류이다. 구글링을 통해 찾아보니 텐서플로우 1.6 버전 이상부터는 AVX사용을 기본으로 탑재를 하고 있으므로 텐서플로우 1.6미만, 즉, 텐서플로우 1.5.1 이하의 버전에서는 오류가 발생하지 않는다는 것을 알 수 있었다.
https://github.com/tensorflow/tensorflow/issues/17386


그럼 이제 문제를 해결해보자.

1. 내 문제가 정말 AVX에 관련된 문제인지 아닌지 확인.
2. 맞다면 내가 사용하는 IDE에 따라서 텐서플로우 버전을 낮추는 조치를 취하기.


1. 내 문제가 정말 AVX에 관련된 문제인지 아닌지 확인.
이걸 확인하기 위해 위키에 들어가서 내 CPU가 AVX를 지원하는지 아닌지를 하나하나 비교해볼수도 있지만 편하게 해결하기 위해서 CPU를 확인하는 프로그램을 하나 설치해봤다.



pidkor47.msi



설치하고 실행하면 아래와 같은 화면을 얻을 수 있다.





CPU 기술 탭의 Intel(R) Advanced Vector Extensions를 보면 "아니오"라고 나온 것을 볼 수 있다. 즉, 내 CPU는 AVX를 지원하지 않는다는 뜻이다.



2. 텐서플로우 버전을 낮추기
그럼 설치한 텐서플로우의 버전을 낮추는 방법에 대해서 알아보자.

먼저 자신이 사용하는 IDE가 무엇인지에 따라서 해결 방법이 바뀔 것이다. 
보통 Pycharm, Anaconda(Jupyter Notebook)를 주로 사용하므로 이 두 가지의 해결 방법에 대해서 설명하겠다.


2-1. Pycharm의 경우

setting -> project -> Project Interpreter 에 들어가서 tensorflow를 찾고 specify version을 1.5.1이하로 설정하면 된다.




2-2. Anaconda의 경우

아나콘다의 경우에는 pip, conda 중 어느 환경에서 텐서플로우를 설치했는지를 알아야 한다.

2-2-1. pip의 경우
(명령 프롬프프)   ->   pip install tensorflow<1.6    혹은   pip install "tensorflow<1.6"
2-2-2. conda의 경우

(아나콘다 명령 프롬프트)   ->   conda install tensorflow<1.6   혹은   conda install tensorflow<1.6





+ Recent posts