2017-08-23 6 views
1

私のpythonスクリップが含まれています。そして、pyInstallerのは、exeファイルを作成することはkeras NNモデルをロードすることはできません

from keras.models import model_from_json 
model = model_from_json(open("test.json").read()) 
model.load_weights("test.h5") 
model.compile(loss="mean_squared_error", optimizer = "adam") 

を、私は上記のスクリプトからpyInstallerのを使用してexeファイルを作成しました。 exeファイルは保存されたモデルを読み込むことができません。それについてのいかなる考えも認められるでしょう。

+0

エラーメッセージは、問題を診断するのに役立ちます。 exeファイルを1つのファイルモードまたは1つのディレクトリモードで作成していますか? 'test.h5'は実行ファイルの近くに置かれていますか? – 9dogs

+0

最初にこれを使用しました: pyinstaller -w myscript.py ディレクトリ内にexeおよび依存ライブラリを作成します。 とエラー: ModuleNotFoundError: 'h5py.defs' ModuleNotFoundErrorという名前のモジュール: 'h5py.utils' Iすでにインポートh5pyという名前のモジュール: 輸入h5py が、私はエラーを解決するには、このコマンドを使用していない: pyInstallerの-w --hidden-import = h5py.defs - hidden-import = h5py.utils myscript.py このエラーが発生しました: ModuleNotFoundError: 'h5py.h5ac'という名前のモジュールがありません – andre

+0

私の提案は長すぎましたそれは答えます。もしそれが助けにならないなら、申し訳ありません。 – 9dogs

答えて

0

h5pyサブモジュールについてエラーが発生した場合は、collect_submodules functionを使用して、すべてをhidden_importsに追加してみてください。

おそらく、pyinstallerによって生成されたmyscript.specというファイルに気づいたでしょう。このファイルの中には、スクリプトをビルドする方法が書かれています(そしてこれは単なるPythonコードです)。

したがって、このようなこのmyscript.specを編集しよう:

from PyInstaller.utils.hooks import collect_submodules 

hidden_imports = collect_submodules('h5py') 

a = Analysis(['myscript.py'], 
     binaries=None, 
     datas=[], 
     hiddenimports=hidden_imports, 
     hookspath=[], 
     runtime_hooks=[], 
     excludes=[], 
     win_no_prefer_redirects=False, 
     win_private_assemblies=False, 
     cipher=None) 

# ... rest of a file untouched 

次にそのファイルに対してpyinstallerを実行します:pyinstaller myscript.spec

0

これは、エラーを解決:

pyInstallerの-w --hiddenインポート= h5py.defs --hiddenインポート= h5py.utils --hiddenインポート= h5py.h5ac --hiddenインポート= h5py ._proxy myscript.py

関連する問題