2018年09月01日

Tensorflowインストール不具合解決方法

Tensorflowをインストールした際に
下記のような不具合が発生し、
Tensorflowライブラリが使用できない問題を
解決する方法を紹介します。

今回の不具合原因は古いCPUや一部の廉価版CPU
(PentiumN3700、N4200など)に起因します。
それ以外の最近のCPUではこの不具合は発生しません。

AnacondaからTensorflowをインストールしましたが、
動作確認のコードを実行すると
「ダイナミック リンク ライブラリ (DLL) 初期化ルーチンの実行に失敗しました。」
というエラーが出て、正常に実行されません。

原因を調査すると結論は
CPUの最近の拡張命令が古いCPUや一部の廉価版CPUでは使用できないために
発生する原因と分かりました。

ライブラリ処理でAVX2命令を使用しており、
通常のフローでTensorflowをインストールすると
AVX2対応CPUのライブラリがデフォルトでインストールされます。

古いCPUや廉価版CPUではAVX2といった拡張命令を搭載していないため、
DLLエラーが発生します。

この場合は手動でAVX2のライブラリを削除し、
SSE2のライブラリを手動でインストールします。


ライブラリを入れなおして実行すると正常に動作することが確認できました。
インストール時にCPUの種別までは自動で判断してくれないようです。

実験環境として使用している廉価版CPUに
古いCPUや廉価版CPUを搭載しているPCでTensorflowで遊んでみる
という方はご注意です。

エラー詳細
(tensorflow17) C:\Users\***>python
Python 3.6.6 |Anaconda, Inc.| (default, Jun 28 2018, 11:27:44) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
Traceback (most recent call last):
File "C:\Users\***\Anaconda3\envs\tensorflow17\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 14, in swig_import_helper
return importlib.import_module(mname)
File "C:\Users\***\Anaconda3\envs\tensorflow17\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) 初期化ルーチンの実行に失敗しました。
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\***\Anaconda3\envs\tensorflow17\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "C:\Users\***\Anaconda3\envs\tensorflow17\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 17, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "C:\Users\***\Anaconda3\envs\tensorflow17\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 16, in swig_import_helper
return importlib.import_module('_pywrap_tensorflow_internal')
File "C:\Users\***\Anaconda3\envs\tensorflow17\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\***\Anaconda3\envs\tensorflow17\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
from tensorflow.python import * # pylint: disable=redefined-builtin
File "C:\Users\***\Anaconda3\envs\tensorflow17\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "C:\Users\***\Anaconda3\envs\tensorflow17\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 74, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "C:\Users\***\Anaconda3\envs\tensorflow17\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 14, in swig_import_helper
return importlib.import_module(mname)
File "C:\Users\***\Anaconda3\envs\tensorflow17\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) 初期化ルーチンの実行に失敗しました。
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\***\Anaconda3\envs\tensorflow17\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "C:\Users\***\Anaconda3\envs\tensorflow17\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 17, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "C:\Users\***\Anaconda3\envs\tensorflow17\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 16, in swig_import_helper
return importlib.import_module('_pywrap_tensorflow_internal')
File "C:\Users\***\Anaconda3\envs\tensorflow17\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'

Failed to load the native TensorFlow runtime.
for some common reasons and solutions. Include the entire stack trace
above this error message when asking for help.
>>>

posted by Crescent at 00:00| Comment(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする