Source code for pypesto.startpoint.uniform
"""Uniform sampling."""
import numpy as np
from .base import FunctionStartpoints
from .util import rescale
[docs]def uniform(
n_starts: int,
lb: np.ndarray,
ub: np.ndarray,
) -> np.ndarray:
"""Generate uniform points.
Parameters
----------
n_starts: Number of starts.
lb: Lower bound.
ub: Upper bound.
Returns
-------
xs: Uniformly sampled points in [lb, ub], shape (n_starts, n_x).
"""
if not np.isfinite(ub).all() or not np.isfinite(lb).all():
raise ValueError(
"Cannot use uniform startpoint method with non-finite boundaries.",
)
# parse
dim = lb.size
lb = lb.reshape((1, -1))
ub = ub.reshape((1, -1))
# create uniform points in [0, 1]
xs = np.random.random((n_starts, dim))
# re-scale
xs = rescale(xs, lb, ub)
return xs
[docs]class UniformStartpoints(FunctionStartpoints):
"""Generate uniformly sampled startpoints."""
[docs] def __init__(
self,
use_guesses: bool = True,
check_fval: bool = False,
check_grad: bool = False,
):
super().__init__(
function=uniform,
use_guesses=use_guesses,
check_fval=check_fval,
check_grad=check_grad,
)