diff --git a/sklearn/gaussian_process/kernels.py b/sklearn/gaussian_process/kernels.py index a34286e358ed5..912b03a487f01 100644 --- a/sklearn/gaussian_process/kernels.py +++ b/sklearn/gaussian_process/kernels.py @@ -77,7 +77,7 @@ class Hyperparameter(namedtuple('Hyperparameter', __slots__ = () def __new__(cls, name, value_type, bounds, n_elements=1, fixed=None): - if bounds != "fixed": + if not isinstance(bounds, six.string_types) or bounds != "fixed": bounds = np.atleast_2d(bounds) if n_elements > 1: # vector-valued parameter if bounds.shape[0] == 1: @@ -88,7 +88,7 @@ def __new__(cls, name, value_type, bounds, n_elements=1, fixed=None): % (name, n_elements, bounds.shape[0])) if fixed is None: - fixed = (bounds == "fixed") + fixed = isinstance(bounds, six.string_types) and bounds == "fixed" return super(Hyperparameter, cls).__new__( cls, name, value_type, bounds, n_elements, fixed)