機械学習済みの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

Atsushi Ueno
Atsushi Ueno 2022년 12월 23일
이동: Atsushi Ueno 2023년 1월 4일
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ではディレクトリを指定することができないと表示される
という現状です。
下記と同様の事例な気がしますが、同解決しているのか理解できていません。
以上、お手数ですがご確認のほどお願いいたします。
soh
soh 2023년 1월 4일
ありがとうございます。
「機械学習済みのmodelファイルをここに動かす」の部分ですが、これは事前に「model_path」の中に私が手動で「model1.mat」を入れるということでしょうか。
Atsushi Ueno
Atsushi Ueno 2023년 1월 5일
>「機械学習済みのmodelファイルをここに動かす」の部分ですが、これは事前に「model_path」の中に私が手動で「model1.mat」を入れるということでしょうか。
はいその通りです。私がweb app serverを動かす環境を持たない状態で回答しているのでこの様な事態になっています。具体的に何が起きているのか、私が詳細を想定出来ていません。
上記リンクの回答ではuigetfile関数を使っています。即ち自分でフォルダを選ぶ様にという事です。これは@sohさんが下記の通り行っている事と同じだと思います。
>このmodelのファイルは、私が「app.appDirectory」のpathを参考に手動でいれています。
soh
soh 2023년 1월 9일
ありがとうございます。
今回はweb app server においての動作もあわせての確認であったため、ご指摘いただいた方法では手動でずっと行う必要がありました。
よって、回答は別の方を採用させていただきました。

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

 채택된 답변

Kojiro Saito
Kojiro Saito 2023년 1월 6일

1 개 추천

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

soh
soh 2023년 1월 9일
ありがとうございます。
ご指示通り行ったところ無事解決いたしました。

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 MATLAB Web App Server에 대해 자세히 알아보기

제품

릴리스

R2022b

질문:

soh
2022년 12월 21일

댓글:

soh
2023년 1월 9일

Community Treasure Hunt

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

Start Hunting!