ガウス過程回帰を用いた学習済みモデルを用いて,並列計算を全てのCPUで行う方法を教えて下さい。
1 回表示 (過去 30 日間)
古いコメントを表示
並列計算を行うコードを書いており,今までは160の論理プロセッサ全てで並列計算が行えましたが,プログラムの一部にガウス過程回帰を用いた学習済みモデルを含めると,40の論理プロセッサ(1つのソケット)だけの動作になってしまいます。きれいに,ノード0のソケットだけ全ての論理プロセッサが負荷100%で,その他の論理プロセッサは負荷が0%から数%となってしまいます。学習済みモデルを使わないようにすると,問題なく全ての論理プロセッサで並列計算をします。学習済みモデルを使って,全ての論理プロセッサで並列計算を行う方法を教えて下さい。
2 件のコメント
mizuki
2018 年 1 月 26 日
問題を把握するために、現在の状況をもう少し教えてください。
ガウス過程回帰の学習済みモデルを含めると40の論理プロセッサだけでしか計算がされないということですが、学習済みモデルを含めない場合は何を並列に計算されているのでしょうか。
他の複数の機械学習モデルを並列に計算されている、一つの機械学習モデルを並列で計算している、機械学習モデルの計算ではなく、他の計算を並列化しているなど、どんな状況に該当しますでしょうか。
また、学習済みモデルは回帰学習器のモデルのエクスポートで出力されるモデル、あるいは FITRGP 関数の出力引数のことでしょうか。
michio
2018 年 1 月 30 日
回答欄にMasakazu Itoさんのコメントが追記 [on 26 Jan 2018 at 2:05]されておりましたので、こちらに転記します。オリジナルは削除しました。
_______________________
どうもありがとうございます。
計算は,パラメータを変えた並列計算を行っています。それぞれの並列にされている計算で,学習済みモデルを使う場合は全ての並列計算で12の同じ学習済みモデル(二乗指数GPRとMatern5/2のミックス)を使い,使わない場合は全ての並列にされている計算で単純な四則演算を用いた持続予測に近いモデルを用いています。
学習済みモデルは,回帰学習器アプリを用いて,コンパクトモデルとして出力したモデルを用いています。
何か分かりますでしょうか。どうぞ,よろしくお願いいたします。
回答 (1 件)
mizuki
2018 年 1 月 30 日
詳細情報ありがとうございます。
二乗指数 GPR と Matern5/2 カーネルそれぞれいくつかのパラメタで作成した学習済みモデルを使って、parfor ループ内で predict 関数を使った予測を並列にされているという認識をしています。
例えば、回帰学習器アプリで出力したそれぞれのコンパクトモデルを save 関数を用いて
save('mdl1.mat', mdl)
のように mdl1.mat, mdl2.mat, ..., mdl12.mat まで保存していたとして、例えば以下のような流れで並列計算されていますでしょうか。(変数名など細かい点について確認しておらず実際に動作するかは不明で、流れだけを書いた擬似コードです)
num_model = 12;
parfor i=1:num_model % 並列ループ
gprmdl = ['mdl', int2str(i)];
load(gprmdl) % モデルのロード
yfit = mdl.predictFcn(Xnew); % Xnew はテストデータ
end
もし理解に間違いがありましたら補足いただければと思います。
1 件のコメント
michio
2018 年 1 月 30 日
編集済み: michio
2018 年 1 月 30 日
回答欄にMasakazu Itoさんのコメントが追記 [on 29 Jan 2018]されておりましたので、こちらに転記します。オリジナルは削除しました。
_____________________
ご確認,ありがとうございます。
12のモデルは1つのmatファイルに保存し,毎回最初にロードして利用しています。 また,12のモデルは1つのループで同時に使っております。 頂いたコードを少し変えまして,下のような流れで利用しております。
load(gprmdl) % 12モデルのロード
num_parameter = 100;
parfor i=1:num_parameter % 並列ループ
yfit = mdl01.predictFcn(Xnew01); % Xnew はテストデータ
yfit = mdl02.predictFcn(Xnew02); % Xnew はテストデータ
% 繰り返し
yfit = mdl12.predictFcn(Xnew12); % Xnew はテストデータ
end
すみませんが,よろしくお願いいたします。
参考
カテゴリ
Help Center および File Exchange で Computer Vision Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!