bayesian-machine-learning icon indicating copy to clipboard operation
bayesian-machine-learning copied to clipboard

f0 passed has more than 1 dimension

Open DeLaRiva opened this issue 3 years ago • 0 comments

when applying this block:

for i in range(n_iter): # Update Gaussian process with existing samples gpr.fit(X_sample, Y_sample)

# Obtain next sampling point from the acquisition function (expected_improvement)
X_next = propose_location(expected_improvement, X_sample, Y_sample, gpr, bounds)

# Obtain next noisy sample from the objective function
Y_next = f(X_next, noise)

# Plot samples, surrogate function, noise-free objective and next sampling location
plt.subplot(n_iter, 2, 2 * i + 1)
plot_approximation(gpr, X, Y, X_sample, Y_sample, X_next, show_legend=i==0)
plt.title(f'Iteration {i+1}')

plt.subplot(n_iter, 2, 2 * i + 2)
plot_acquisition(X, expected_improvement(X, X_sample, Y_sample, gpr), X_next, show_legend=i==0)

# Add sample to previous samples
X_sample = np.vstack((X_sample, X_next))
Y_sample = np.vstack((Y_sample, Y_next))

I receive

for i in range(n_iter): # Update Gaussian process with existing samples gpr.fit(X_sample, Y_sample)

# Obtain next sampling point from the acquisition function (expected_improvement)
X_next = propose_location(expected_improvement, X_sample, Y_sample, gpr, bounds)

# Obtain next noisy sample from the objective function
Y_next = f(X_next, noise)

Traceback (most recent call last):

File "C:\Users\User~1\AppData\Local\Temp/ipykernel_31512/2407564972.py", line 6, in X_next = propose_location(expected_improvement, X_sample, Y_sample, gpr, bounds)

File "C:\Users\User~1\AppData\Local\Temp/ipykernel_31512/3463643264.py", line 86, in propose_location res = minimize(min_obj, x0=x0, bounds=bounds, method='L-BFGS-B')

File "C:\Users\User\Anaconda3\lib\site-packages\scipy\optimize_minimize.py", line 623, in minimize return _minimize_lbfgsb(fun, x0, args, jac, bounds,

File "C:\Users\User\Anaconda3\lib\site-packages\scipy\optimize\lbfgsb.py", line 306, in _minimize_lbfgsb sf = _prepare_scalar_function(fun, x0, jac=jac, args=args, epsilon=eps,

File "C:\Users\User\Anaconda3\lib\site-packages\scipy\optimize\optimize.py", line 261, in _prepare_scalar_function sf = ScalarFunction(fun, x0, args, grad, hess,

File "C:\Users\User\Anaconda3\lib\site-packages\scipy\optimize_differentiable_functions.py", line 159, in init self._update_grad()

File "C:\Users\User\Anaconda3\lib\site-packages\scipy\optimize_differentiable_functions.py", line 238, in _update_grad self._update_grad_impl()

File "C:\Users\User\Anaconda3\lib\site-packages\scipy\optimize_differentiable_functions.py", line 155, in update_grad self.g = approx_derivative(fun_wrapped, self.x, f0=self.f,

File "C:\Users\User\Anaconda3\lib\site-packages\scipy\optimize_numdiff.py", line 448, in approx_derivative raise ValueError("f0 passed has more than 1 dimension.")

ValueError: f0 passed has more than 1 dimension.

DeLaRiva avatar Jun 02 '22 10:06 DeLaRiva