Filter löschen
Filter löschen

How to use importKerasNetwork in standalone executable.

3 Ansichten (letzte 30 Tage)
AsukaIkeda
AsukaIkeda am 1 Feb. 2022
Kommentiert: Kojiro Saito am 2 Feb. 2022
事前学習済みの Keras ネットワークおよび重みのインポート - MATLAB importKerasNetwork - MathWorks 日本事前学習済みの Keras ネットワークのインポートによるイメージの分類 を関数にし、exe化しましたが以下のエラーが出てしまいます。
-----------------------------------------------------------------------------
エラー: importKerasNetwork (行 71)
importKerasNetwork には Deep Learning Toolbox Importer for Keras Models サポート パッケージが必要です。このサポート パッケージをインストールするには、<a href="matlab: matlab.addons.supportpackage.internal.explorer.showSupportPackages('KERASIMPORTER', 'tripwire')">アドオン エクスプローラー</a>を使用してください。
エラー: test_Keras (行 5)
nnet_cnn:supportpackages:InstallRequired
-----------------------------------------------------------------------------
matlab2021aを使用。
exe作成元PCにはimportKerasNetworkのアドオンはインストール済、作成した関数の動作確認済です。
アプリケーションコンパイラの「推奨されるサポートパッケージ」に表示された[Deloy Imported Models for Deep Learning Toolbox Conv...]のチェックボックスにはチェックを入れた状態です。
以下のAnswersを参照し試しましたが別のエラーになりました。
-----------------------------------------------------------------------------
エラー: matlab.internal.msgcat.setAdditionalResourceLocation
パス "C:\Users\Asuka IKEDA\AppData\Local\Temp\a-takasi\mcrCache9.10\test_K2" は、有効なメッセージ カタログ リソースのパ スではありません
エラー: nnet.internal.cnn.keras.setAdditionalResourceLocation (行 9)
エラー: nnet.internal.cnn.keras.importKerasNetwork (行 6)
エラー: importKerasNetwork (行 76)
エラー: test_Keras (行 5)
MATLAB:internal:msgcat:msgcatInvalidResourcePath
-----------------------------------------------------------------------------
importKerasNetworkのアドオンはexe化できないのでしょうか?
ご教示いただけますと幸いです。

Akzeptierte Antwort

Kojiro Saito
Kojiro Saito am 1 Feb. 2022
Bearbeitet: Kojiro Saito am 1 Feb. 2022
importKerasNetworkのアドオンがコンパイル時にうまく含まれていないようです。
その場合、手動でサポートパッケージのファイルを追加することで解決できます。
アプリケーションコンパイラの「アプリケーションの実行に必要なファイル」の欄で「+ (プラス)」をクリックして、
サポートパッケージがインストールされたルートフォルダ (R2021aだとデフォルトがC:\ProgramData\MATLAB\SupportPackages\R2021a)にある
\toolbox\nnet\supportpackages\keras_importer\+nnet フォルダ
\resources\nnet_cnn_kerasimporter フォルダ
を追加します。
サポートパッケージのインストールルートフォルダはMATLABで
matlabshared.supportpkg.getSupportPackageRoot
を実行すると出力されます。
また、上記ドキュメントの「事前学習済みの Keras ネットワークのインポートによるイメージの分類」をEXEファイルにする場合は「digitsDAGnet.h5」と「image4009.png」も追加します。
digitsDAGnet.h5は<サポートパッケージのルートフォルダ>\toolbox\nnet\supportpackages\keras_importer\+nnet に、
image4009.pngは<MATLABのインストールフォルダ>\toolbox\nnet\nndemos\nndatasets\DigitDataset\5 にあります。
以下のような画面になります。
また、MATLAB Runtimeにはtoolboxdir('nnet')のフォルダが存在しないので、ドキュメントの例からimreadの部分を以下のように変更します。
modelfile = 'digitsDAGnet.h5';
classNames = {'0','1','2','3','4','5','6','7','8','9'};
net = importKerasNetwork(modelfile,'Classes',classNames);
%digitDatasetPath = fullfile(toolboxdir('nnet'),'nndemos','nndatasets','DigitDataset');
%I = imread(fullfile(digitDatasetPath,'5','image4009.png'));
I = imread('image4009.png');
label = classify(net,I);
imshow(I)
title(['Classification result: ' char(label)])
これでコンパイルできると思います。参考になれば幸いです。
  2 Kommentare
AsukaIkeda
AsukaIkeda am 2 Feb. 2022
Kojiro Saito様
ご教示いただきました通り設定したところ、無事にexeを実行し正常に動作することを確認できました。
迅速なご対応を誠にありがとうございます、大変助かりました!
Kojiro Saito
Kojiro Saito am 2 Feb. 2022
解決して良かったです。
通常はMATLAB Compilerがサポートパッケージも含めるようになっているのですが、Kerasのインポーターはうまく取り込まれていなかったですね。R2021bでも再現するので、開発部門に伝えておきます。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu イメージを使用した深層学習 finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!