首页 > 解决方案 > 使用 Matlab 中的 tensorflow-gpu 执行 python 时出现 DLL 错误

问题描述

我有一些使用 tensorflow-gpu 的 python 代码。事实上,只使用

import tensorflow as tf

显示以下奇怪的行为:

激活 conda 环境并在 cmd 中运行此代码就可以了。但是当我使用命令从 Matlab 运行它时

!activate env_name & cd path_to_main & python main.py

出现以下错误:

Traceback (most recent call last): 
  File "D:\Programs\Anaconda3\envs\env_name\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module> 
    from tensorflow.python.pywrap_tensorflow_internal import * 
  File "D:\Programs\Anaconda3\envs\env_name\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module> 
    _pywrap_tensorflow_internal = swig_import_helper() 
  File "D:\Programs\Anaconda3\envs\env_name\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper 
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description) 
  File "D:\Programs\Anaconda3\envs\env_name\lib\imp.py", line 243, in load_module 
    return load_dynamic(name, filename, file) 
  File "D:\Programs\Anaconda3\envs\env_name\lib\imp.py", line 343, in load_dynamic 
    return _load(spec) 
ImportError: DLL load failed: Die angegebene Prozedur wurde nicht gefunden. 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
  File "main.py", line 1, in <module> 
    import tensorflow as tf 
  File "D:\Programs\Anaconda3\envs\env_name\lib\site-packages\tensorflow\__init__.py", line 28, in <module> 
    from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import 
  File "D:\Programs\Anaconda3\envs\env_name\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module> 
    from tensorflow.python import pywrap_tensorflow 
  File "D:\Programs\Anaconda3\envs\env_name\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 74, in <module> 
    raise ImportError(msg) 
ImportError: Traceback (most recent call last): 
  File "D:\Programs\Anaconda3\envs\env_name\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module> 
    from tensorflow.python.pywrap_tensorflow_internal import * 
  File "D:\Programs\Anaconda3\envs\env_name\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module> 
    _pywrap_tensorflow_internal = swig_import_helper() 
  File "D:\Programs\Anaconda3\envs\env_name\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper 
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description) 
  File "D:\Programs\Anaconda3\envs\env_name\lib\imp.py", line 243, in load_module 
    return load_dynamic(name, filename, file) 
  File "D:\Programs\Anaconda3\envs\env_name\lib\imp.py", line 343, in load_dynamic 
    return _load(spec) 
ImportError: DLL load failed: Die angegebene Prozedur wurde nicht gefunden. 


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. 

任何人都知道,为什么会发生这种情况以及如何解决?错误消息中显示的链接并没有真正帮助,因为此错误通常似乎发生在未正确安装不同的软/硬件组件时,但我的代码从 cmd 运行的事实表明,这里不是这种情况.

我的系统是带有 GTX1050Ti 的 Windows 10,使用 CUDA10.0、cudnn 7.6.2 和 tf-gpu 1.13.1(但我测试过的其他版本显示相同的行为) Matlab R2018b

标签: pythonmatlabtensorflow

解决方案


推荐阅读