機械学習済みのmat​ファイルをweb app serverに​て読み込む方法

現在アプリにて機械学習済みのmatファイルをweb app serverに​て読み込みたいです。(app designerで制作したアプリです)
現状としては、
app.appDirectory = fileparts(mfilename('fullpath'));
にてアプリのディレクトリを取得し、その後
cd('model')
として機械学習済みのmodelが入っているファイルを参照し、load('model1.mat')のような形で、matファイルの中にあるmodel1.matを読み込んでおります。(modelの中にあるmatファイルは複数あります。)
このmodelのファイルは、私が「app.appDirectory」のpathを参考に手動でいれています。
ただバージョンを変えるごとに、「app.appDirectory」のpathがかわるため、毎回modelのファイルを動かすのが手間に感じております。
これよりいい方法で、matファイルを読み込む方法はないのでしょうか。

5 个评论

MATLAB Answersのサーバで動くMATLABでも再現します(プログラムを実行する度に path が変わります)
chang_path = fileparts(mfilename('fullpath')) % 本プログラムが存在するフォルダ(毎回変わる)
chang_path = '/tmp/Editor_eqozx'
model_path = [chang_path, filesep, 'test', filesep, 'model'] % モデル用フォルダのパス(例)
model_path = '/tmp/Editor_eqozx/test/model'
mkdir(model_path) % モデル用フォルダを作成
fclose(fopen([model_path, filesep, 'model1.mat'],'w')); % 機械学習済みのmodelファイルをここに動かす(テスト用に新規作成)
ls(model_path)
model1.mat
soh
soh 2023-1-3
移动:Atsushi Ueno 2023-1-4
ご返信が遅くなってしまい申し訳ございません。
説明がわかりづらく申し訳ございません。
現状の状況を整理いたします。
・A.ctfというファイルがwebapp server上にアップロードされている
・このAというアプリより、機械学習済みのデータB.matを読み込みたい
・ただ、Aというアプリのディレクトリがセッションごとに変わってしまう
・web app serverでディレクトリを絶対指定しようとすると、web app serverではディレクトリを指定することができないと表示される
という現状です。
下記と同様の事例な気がしますが、同解決しているのか理解できていません。
以上、お手数ですがご確認のほどお願いいたします。
ありがとうございます。
「機械学習済みのmodelファイルをここに動かす」の部分ですが、これは事前に「model_path」の中に私が手動で「model1.mat」を入れるということでしょうか。
>「機械学習済みのmodelファイルをここに動かす」の部分ですが、これは事前に「model_path」の中に私が手動で「model1.mat」を入れるということでしょうか。
はいその通りです。私がweb app serverを動かす環境を持たない状態で回答しているのでこの様な事態になっています。具体的に何が起きているのか、私が詳細を想定出来ていません。
上記リンクの回答ではuigetfile関数を使っています。即ち自分でフォルダを選ぶ様にという事です。これは@sohさんが下記の通り行っている事と同じだと思います。
>このmodelのファイルは、私が「app.appDirectory」のpathを参考に手動でいれています。
ありがとうございます。
今回はweb app server においての動作もあわせての確認であったため、ご指摘いただいた方法では手動でずっと行う必要がありました。
よって、回答は別の方を採用させていただきました。

请先登录,再进行评论。

 采纳的回答

Webアプリはアクセスする毎にセッションフォルダーが変わってしまいますが、「Web アプリコンパイラー」で「アプリに実行に必要なファイル」にフォルダーを追加してパッケージに含めれば、
load(fullfile('models', 'trainedModel.mat'))
のようにフォルダー名とmatファイル名をfullfileでつなげて読み込みできます。
matファイルの実体はWindowsだと
C:\ProgramData\MathWorks\webapps\R2022b\USR\.appCache\mcrCache9.13\myPred\myPredictApp\models\trainedModel.mat
のようにアプリのキャッシュフォルダーの中に配置されるので、セッションによらず同じmatファイルを使用することができます。

1 个评论

ありがとうございます。
ご指示通り行ったところ無事解決いたしました。

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 MATLAB Web App Server 的更多信息

产品

版本

R2022b

Community Treasure Hunt

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

Start Hunting!