2017-08-17 7 views
2

大きなMatlabプロジェクトの一部としてKeras/Tensorflowを使用するPythonスクリプトを使用しようとしています。 MatlabはPythonモジュールをうまく動作させることができます。ターミナルから直接Pythonスクリプトを実行するとうまくいきます。MatlabでPythonインタフェースを使用してTensorflowをインポートする

Matlabの:しかし、二つは興味深い方法で失敗組み合わせる

% tensorflowTest.m 
mod = py.importlib.import_module('tensorf'); 
py.importlib.reload(mod); 

ザ・パイソン:

# tensorf.py 
import tensorflow 

結果:ImportError: libcudnn.so.6: cannot open shared object file: No such file or directoryがあるので面白いです

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) 

libcuddnをインストールする前に確認するか、LD_LIBRARY_PATHがインストールされていない場合正しく設定してください。

また、これは直接tensorflowインポートする場合はどうなります:py.importlib.import_module('tensorflow');

私はこのためのRPC /別のプロセスに頼ることを好むだろう。私は明白な何かを欠いていますか

+0

一般的なpython-on-MATLAB envvar/path shenanigansについては、googleを使いましたか?より一般的な問題かもしれません。 –

+0

matlabのように見えるのは、LD_LIBRARY_PATHを自分自身のものにリセットします.bashrcに設定されているものに追加するのではなく、上書きします。残念ながら、setenvまたはos.environでpythonでcudaのlibフォルダを追加しても何も解決されません。 – KendallV

+1

ランチャーからMatlabを起動していませんでした。 bashの作業から始まります。明白な間違い。 – KendallV

答えて

1

ターミナルからMatlabを起動するかランチャーのLD_LIBRARY_PATHを設定してこれを解決します。

関連する問題