We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
多目的最適化の計算をインタラクティブ実行すると、以下のような挙動になりました。
physbo.search.utility.show_search_results_mo
policy.get_post_fmean
ValueError: shapes (100,10) and (9,) not aligned: 10 (dim 1) != 9 (dim 0)
なお、2.のエラーに関してはsimulatorクラスを定義して実行した場合には発生しませんでした。 設定の間違いや回避策などがあればご教示いただければ幸いです。
import numpy as np import physbo def f(x): y1 = 1 + np.exp(-x) y2 = 2*x**2 + 1 return np.c_[-y1, -y2] x = np.linspace(0.1,5,100) test_X = x.reshape(len(x),1) policy = physbo.search.discrete_multi.policy(test_X=test_X, num_objectives=2) policy.set_seed(0) # ランダムサーチ num_rand = 5 for i in range(num_rand): actions = policy.random_search(max_num_probes=1, simulator=None) t = f(test_X[actions[0]]) policy.write(actions, t) physbo.search.utility.show_search_results_mo(policy.history, 10) # ベイズ最適化 num_bo = 5 for i in range(num_bo): actions = policy.bayes_search(max_num_probes=1, simulator=None, score='HVPI', interval=0) t = f(test_X[actions[0]]) policy.write(actions, t) physbo.search.utility.show_search_results_mo(policy.history, 10) post_fmean = policy.get_post_fmean(test_X) # ここでエラー発生 post_fcov = policy.get_post_fcov(test_X)
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In [1], line 31 28 policy.write(actions, t) 29 physbo.search.utility.show_search_results_mo(policy.history, 10) ---> 31 post_fmean = policy.get_post_fmean(test_X) 32 post_fcov = policy.get_post_fcov(test_X) File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\physbo\search\discrete_multi\policy.py:293, in policy.get_post_fmean(self, xs) 291 predictor_list[i].fit(self.training_list[i], 0) 292 predictor_list[i].prepare(self.training_list[i]) --> 293 fmean = [ 294 predictor.get_post_fmean(training, X) 295 for predictor, training in zip(predictor_list, self.training_list) 296 ] 297 return np.array(fmean).T File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\physbo\search\discrete_multi\policy.py:294, in <listcomp>(.0) 291 predictor_list[i].fit(self.training_list[i], 0) 292 predictor_list[i].prepare(self.training_list[i]) 293 fmean = [ --> 294 predictor.get_post_fmean(training, X) 295 for predictor, training in zip(predictor_list, self.training_list) 296 ] 297 return np.array(fmean).T File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\physbo\gp\predictor.py:98, in predictor.get_post_fmean(self, training, test) 96 if self.model.stats is None: 97 self.prepare(training) ---> 98 return self.model.get_post_fmean(training.X, test.X) File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\physbo\gp\core\model.py:248, in model.get_post_fmean(self, X, Z, params) 245 params = np.copy(self.params) 247 if self.inf == "exact": --> 248 post_fmu = inf.exact.get_post_fmean(self, X, Z, params) 250 return post_fmu File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\physbo\gp\inf\exact.py:182, in get_post_fmean(gp, X, Z, params) 179 fmu = gp.prior.get_mean(ntest) 180 G = gp.prior.get_cov(X=Z, Z=X, params=prior_params) --> 182 return G.dot(alpha) + fmu ValueError: shapes (100,10) and (9,) not aligned: 10 (dim 1) != 9 (dim 0)
del policy class simulator(object): def __init__(self, X): self.t = f(X) def __call__( self, action): return self.t[action] simu = simulator(test_X) policy = physbo.search.discrete_multi.policy(test_X=test_X, num_objectives=2) policy.set_seed(0) policy.random_search(max_num_probes=5, simulator=simu) res = policy.bayes_search(max_num_probes=5, simulator=simu, score='HVPI', interval=0) post_fmean = policy.get_post_fmean(test_X) post_fcov = policy.get_post_fcov(test_X) post_fmean[0:res.num_runs] # こちらは問題なく実行可能
The text was updated successfully, but these errors were encountered:
@yamato-m-csc 報告ありがとうございます。こちらでも確認しました。 1, 2 ともにPHYSBO 側の問題でした。
1 については、結果を表示する範囲がおかしくなっています。内部的にはちゃんと記録されています。 2 については、インタラクティブ実行の場合には内部モデル関数を更新するタイミングに問題があり、最後の実行結果が反映されていない状態でした。 ベイズ最適化自体は問題なく回っていますが、最後に事後分布などを確認したい場合には今回のように内部の不整合で落ちる状態です。 さしあたって、 get_post_fmean などを呼ぶ前に、
get_post_fmean
policy.bayes_search(max_num_probes=0)
と、0回で空回ししてください。
Sorry, something went wrong.
Fix #42 (#51)
8900097
Fixed in #51.
yomichi
No branches or pull requests
多目的最適化の計算をインタラクティブ実行すると、以下のような挙動になりました。
physbo.search.utility.show_search_results_mo
の履歴に最初の一個目の結果が表示されない(表示数が2以上の場合)policy.get_post_fmean
実行時にValueError: shapes (100,10) and (9,) not aligned: 10 (dim 1) != 9 (dim 0)
のようなエラーが発生なお、2.のエラーに関してはsimulatorクラスを定義して実行した場合には発生しませんでした。
設定の間違いや回避策などがあればご教示いただければ幸いです。
実行環境
テストコード(インタラクティブ実行)
エラーメッセージ全文
simulatorクラスを使った場合
The text was updated successfully, but these errors were encountered: