Ich versuche ein Python-Skript zu verwenden, das Keras/Tensorflow als Teil eines größeren Matlab-Projekts verwendet. Matlab kann Python-Module problemlos ausführen. Das Ausführen der Python-Skripts direkt vom Terminal funktioniert einwandfrei. Aber die beiden nicht auf eine interessante Weise kombiniert:Importieren von Tensorflow in Matlab über Python-Schnittstelle
Matlab:
% tensorflowTest.m
mod = py.importlib.import_module('tensorf');
py.importlib.reload(mod);
Der Python:
# tensorf.py
import tensorflow
Das Ergebnis:
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)
was interessant ist, weil ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory
ist etwas, das wir vor der Installation von libcuddn oder wenn LD_LIBRARY_PATH
nicht sehen richtig eingestellt.
Dies geschieht auch, wenn das Importieren tensorflow direkt: py.importlib.import_module('tensorflow');
ich dies zu einem RPC/separaten Prozess zurückgreifen würde es vorziehen. Fehle ich etwas Offensichtliches?
Haben Sie nach generischen Python-on-MATLAB-envvar/Pfad-Shenanigans gegoogelt? Könnte ein allgemeineres Problem sein. –
Sieht so aus, als ob Matlab LD_LIBRARY_PATH auf seine eigenen Sachen zurücksetzt - anstatt auf irgendetwas zu setzen, was in bashrc eingestellt ist. Das Hinzufügen von cudas Lib-Ordner über setenv oder in Python über os.environ löst leider nichts. – KendallV
Problem startete Matlab von einem Launcher. Ausgehend von Bash funktioniert. Offensichtlicher Fehler. – KendallV