python - 使用 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
解决方案
推荐阅读
- python - 循环遍历子文件夹并在 Python 中保存到 .csv
- sql-server - 如何使用 NHibernate 映射 newsequentialid
- android - Firebase实时数据库通过uid检索数据并将其放入Varable kotlin android
- javascript - @react-native-firebase/database "orderByChild" 不工作
- php - Symfony 3.4 和 PHP 版本
- r - 暂时禁用此应用的 Google 登录 R
- laravel - 登录laravel 6后如何重定向到上一页
- hibernate - Hibernate 在获取一对一实体关联的父端时执行附加查询
- url-rewriting - 如何使用资源映射 (etc/map) 在 AEM 中重写内部 URL
- php - 从 Laravel 中的 pivotParent 获取数据