How to use importKerasNetwork in standalone executable.

3 visualizzazioni (ultimi 30 giorni)
事前学習済みの 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化できないのでしょうか?
ご教示いただけますと幸いです。

Risposta accettata

Kojiro Saito
Kojiro Saito il 1 Feb 2022
Modificato: Kojiro Saito il 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 Commenti
AsukaIkeda
AsukaIkeda il 2 Feb 2022
Kojiro Saito様
ご教示いただきました通り設定したところ、無事にexeを実行し正常に動作することを確認できました。
迅速なご対応を誠にありがとうございます、大変助かりました!
Kojiro Saito
Kojiro Saito il 2 Feb 2022
解決して良かったです。
通常はMATLAB Compilerがサポートパッケージも含めるようになっているのですが、Kerasのインポーターはうまく取り込まれていなかったですね。R2021bでも再現するので、開発部門に伝えておきます。

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su イメージを使用した深層学習 in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!