def unnormalise_y(y_): return B.add(B.multiply(y_, stds), means)
from wbml.out import Counter from .model import GPAR, per_output __all__ = ["GPARRegressor", "log_transform", "squishing_transform"] log = logging.getLogger(__name__) _dispatch = Dispatcher() #: Log transform for the data. log_transform = (B.log, B.exp) #: Squishing transform for the data. squishing_transform = ( lambda x: B.sign(x) * B.log(B.add(1, B.abs(x))), lambda x: B.sign(x) * B.subtract(B.exp(B.abs(x)), 1), ) def _vector_from_init(init, length): # If only a single value is given, create ones. if np.size(init) == 1: return init * np.ones(length) # Multiple values are given. Check that enough values are available. init_squeezed = np.squeeze(init) if np.ndim(init_squeezed) != 1: raise ValueError("Incorrect shape {} of hyperparameters." "".format(np.shape(init))) if np.size(init_squeezed) < length: # Squeezed doesn't change size.