回帰学習モデルのApp Designerへの実装について

回帰学習アプリ(Statistics and Machine Learning Toolbox)で作った統計モデルをApp Designerで使用したいです。
回帰学習器アプリでエクスポートしたモデルをMATLAB Functionブロックと同様にloadLearnerForCoderで呼び出して実行しようとしましたがモデルが見つかりませんと言うエラーが出てしまいます。
使用している回帰モデル:線形回帰モデル、ガウス過程回帰モデル

 Respuesta aceptada

Kojiro Saito
Kojiro Saito el 9 de En. de 2024

1 voto

loadLearnerForCoderはC/C++コード生成を行うためのモデルの読み込みですが、今回はApp Designerで使用するためなのでloadで十分です。
回帰学習器アプリでエクスポートしたモデルの変数(例:trainedModel)をワークスペースで右クリック「名前を付けて保存」からmatファイル(ファイル名の例:model.mat)として保存します。それをApp Designerのコールバックのどこかで下記のようにloadで読み込めばOKです。
load('model.mat')

6 comentarios

hiroshiii
hiroshiii el 10 de En. de 2024
早々にご回答いただきありがとうございました。
load('model.mat')の呼び出しも試したのですが同様に、
「ファイルまたはディレクトリ'model.mat'が見つかりません。」
と言うエラーが出てしまいます。よろしくお願いいたします。
Kojiro Saito
Kojiro Saito el 10 de En. de 2024
matファイルがMATLABの現在のフォルダーやパスが通っているところにないのが原因です。
App Designerの.mlappのファイルと同じフォルダーにmatファイルを置いてみてください。
hiroshiii
hiroshiii el 10 de En. de 2024
早々に誠にありがとうございます。読み込み問題、解決できました。
ただ、以下の様に計算値が返って来ない状況です。よろしくお願いいたします。
S = load('model.mat');
<トライ1>
Y = predict(S, X); % Xは入力する2変数(200*2 double)
エラーメッセージ:
モデルの入力数と出力数はデータの入力数と出力数と一致しなければなりません
<トライ2>
Y = S.predictFcn(X);
エラーメッセージ:
フィールド名 ”predictFcn"が認識されません。
Kojiro Saito
Kojiro Saito el 10 de En. de 2024
loadだけを実行するとワークスペース変数がそのまま読み込まれ、trainedModeltrainedModelとしてワークスペースに格納されます。
出力変数を割り当てると、その中のフィールド値として格納されるので、
S = load('model.mat');
Y = predict(S.trainedModel, X);
とすれば実行できると思います。
hiroshiii
hiroshiii el 10 de En. de 2024
フィールド名"trainedModel"が認識されません。と言うエラーが出てしまいます。
loadしたModel.matの構造は1*1 structで、
その中はcompactStruct(1*1 struct)となっています。
Kojiro Saito
Kojiro Saito el 10 de En. de 2024
モデルをcompactStructという名前で保存しているようなので、
S = load('model.mat');
Y = predict(S.compactStruct, X);
でどうでしょうか?

Iniciar sesión para comentar.

Más respuestas (0)

Preguntada:

el 9 de En. de 2024

Comentada:

el 10 de En. de 2024

Community Treasure Hunt

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

Start Hunting!