Skip to main content
 首页 » 编程设计

python之通过Python接口(interface)在Matlab中导入Tensorflow

2025年02月15日24dflying

我正在尝试使用一个 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 可解决此问题。