我正在尝试使用一个 Python 脚本,该脚本使用 Keras/Tensorflow 作为更大的 Matlab 项目的一部分。 Matlab 可以很好地运行 Python 模块。直接从终端运行 Python 脚本工作正常。但是以一种有趣的方式将两者结合起来失败了:
Matlab:
% tensorflowTest.m
mod = py.importlib.import_module('tensorf');
py.importlib.reload(mod);
python :
# tensorf.py
import tensorflow
结果:
Error using pywrap_tensorflow><module> (line 52)
Python Error: ImportError: Traceback (most recent call last):
File "/home/cfedk/shared/anaconda3/envs/keras/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow.py", line 41, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "/home/cfedk/shared/anaconda3/envs/keras/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "/home/cfedk/shared/anaconda3/envs/keras/lib/python3.5/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 "/home/cfedk/shared/anaconda3/envs/keras/lib/python3.5/imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "/home/cfedk/shared/anaconda3/envs/keras/lib/python3.5/imp.py", line 342, in load_dynamic
return _load(spec)
ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory
Failed to load the native TensorFlow runtime.
See https://www.tensorflow.org/install/install_sources#common_installation_problems
for some common reasons and solutions. Include the entire stack trace
above this error message when asking for help.
Error in __init__><module> (line 49)
from tensorflow.python import pywrap_tensorflow
Error in __init__><module> (line 24)
from tensorflow.python import *
Error in tensorf><module> (line 1)
import tensorflow
Error in <frozen importlib>_call_with_frames_removed (line 222)
Error in <frozen importlib>exec_module (line 678)
Error in <frozen importlib>_load_unlocked (line 673)
Error in <frozen importlib>_find_and_load_unlocked (line 958)
Error in <frozen importlib>_find_and_load (line 969)
Error in <frozen importlib>_gcd_import (line 986)
Error in __init__>import_module (line 126)
return _bootstrap._gcd_import(name[level:], package, level)
这很有趣,因为 ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory 是我们在安装 libcuddn 之前或如果 LD_LIBRARY_PATH 设置不正确。
如果直接导入 tensorflow 也会发生这种情况:py.importlib.import_module('tensorflow');
我宁愿为此求助于 RPC/单独的进程。我是否遗漏了一些明显的东西?
请您参考如下方法:
从终端启动 Matlab 或在启动器中设置 LD_LIBRARY_PATH 可解决此问题。
