In gp.py, the predict() method returns an array of size (num_pts,). This does not match the returned size of the predict_std() method, which instead returns an array of size (num_pts,1).
This causes issues in ei_merit.py, in the ei_merit() function. When mu and sig are assigned different sizes on line 23, gamma (and subsequently beta then ei) will become a square array of size (num_pts, num_pts). This causes an IndexError exception on line 31, when the incorrectly-sized ei is indexed by the correctly-sized dmerit.
Potential solution:
In gp.py, in the predict() method, change line 71 to more closely match the form of line 85. Suggestion below:
return self._mu + self._sigma * np.expand_dims(self.model.predict(xx), axis=1)
Note: this issue appeared suddenly for me, without any updates to pySot itself, so it is possible that either:
- I introduced this issue by passing in bad values somewhere. However, the proposed fix resolved my issue, so I would say it's not likely that that is the problem.
- While I did not track the timing closely, there is a chance that this issue began to occur after upgrading from python 3.7 from 3.11.
In
gp.py, thepredict()method returns an array of size(num_pts,). This does not match the returned size of thepredict_std()method, which instead returns an array of size(num_pts,1).This causes issues in
ei_merit.py, in theei_merit()function. Whenmuandsigare assigned different sizes on line 23,gamma(and subsequentlybetathenei) will become a square array of size(num_pts, num_pts). This causes anIndexErrorexception on line 31, when the incorrectly-sizedeiis indexed by the correctly-sizeddmerit.Potential solution:
In
gp.py, in thepredict()method, change line 71 to more closely match the form of line 85. Suggestion below:return self._mu + self._sigma * np.expand_dims(self.model.predict(xx), axis=1)Note: this issue appeared suddenly for me, without any updates to pySot itself, so it is possible that either: