print("Function value obtained: %0.4f" % curr_y)
print("Current minimum: %0.4f" % np.min(y0))
if callback is not None:
callback(pack_optimize_result(x0, y0, space, rng, specs))
elif x0:
if isinstance(y0, Iterable):
y0 = list(y0)
elif isinstance(y0, numbers.Number):
y0 = [y0]
else:
raise ValueError(
"`y0` should be an iterable or a scalar, got %s" % type(y0))
if len(x0) != len(y0):
raise ValueError("`x0` and `y0` should have the same length")
if not all(map(np.isscalar, y0)):
raise ValueError(
"`y0` elements should be scalars")
else:
y0 = []
// Random function evaluations.
X_rand = space.rvs(n_samples=n_random_starts, random_state=rng)
Xi = x0 + X_rand
yi = y0
for i, x in enumerate(X_rand):
if verbose:
func_call_no += 1
print("Function evaluation no: %d at a "
"random point started" % func_call_no)
t = time()
curr_y = func(x)
yi.append(curr_y)
if verbose:
print("Function evaluation no: %d at a "
"random point ended" % func_call_no)
print("Time taken: %0.4f" % (time() - t))
print("Function value obtained: %0.4f" % curr_y)
print("Current minimum: %0.4f" % np.min(yi))
if callback is not None:
callback(pack_optimize_result(
x0 + X_rand[:i + 1], yi, space, rng, specs))
if np.ndim(yi) != 1:
raise ValueError("`func` should return a scalar")