2016-12-07 7 views
1

kerasを使用してモデルをPythonで訓練し、matlabコードと統合しようとしました。 MATLABでは 私はでPythonの関数を呼び出しています:kerasからの輸入があり、私のpythonモジュールでmatlabからPythonモジュールへの呼び出しに関する問題kerasを使用して書きました

res = py.mymod.myfun(); 

# mymod.py 
import keras.models 
def myfun(): 
    ... 
    ... 

MATLABでエラーがある:

Error using __init__><module> (line 65) 
Python Error: AttributeError: 'NoneType' object has no attribute 'write' 

Error in __init__><module> (line 2) 
from . import backend 

Error in mymod><module> (line 3) 
import keras.models 

Error in <frozen importlib>_call_with_frames_removed (line 222) 

Error in <frozen importlib>exec_module (line 665) 

Error in <frozen importlib>_exec (line 626) 

Error in __init__>reload (line 166) 
     _bootstrap._exec(spec, module) 

私は、mymodとkerasの両方がpythonのパスにあることを確認しました:

P = py.sys.path; 
if count(P,modulePath) == 0 
    insert(P,int32(0),modulePath); 
end 
if count(P,kerasPath) == 0 
    insert(P,int32(0),kerasPath); 
end 

このエラーの原因は何ですか? ケラスのインポートを削除した後、明らかにエラーが消えてしまいました。

+0

ところで、Pythonからこの関数を呼び出すことは、エラーなしで動作するので、Matlabが呼び出す方法に関連していなければなりません。さらに、Keralaのインポートを省略してMatlabからこの関数を呼び出すこともできます。 – avielbl

答えて

0

これは、Kerasが "Tensorflowをバックエンドとして使用する"(または使用しているバックエンド)という行をstderrに書き込むためです。それをコメントアウトすると、インポートが機能するはずです。

関連する問題