필터 지우기
필터 지우기

How to use importKerasNetwork in standalone executable.

조회 수: 3 (최근 30일)
AsukaIkeda
AsukaIkeda 2022년 2월 1일
댓글: Kojiro Saito 2022년 2월 2일
事前学習済みの 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化できないのでしょうか?
ご教示いただけますと幸いです。

채택된 답변

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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 イメージを使用した深層学習에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!