class_docstr: Base class for MLP classification and regression.
  
  Warning: This class should not be used directly.
  Use derived classes instead.
  
  .. versionadded:: 0.18
code: def _validate_hyperparameters(self):
      if not isinstance(self.shuffle, bool):
          raise ValueError(
              "shuffle must be either True or False, got %s."
              % self.shuffle
          )
      if self.max_iter <= 0:
          raise ValueError(
              "max_iter must be > 0, got %s." % self.max_iter
          )
      if self.alpha < 0.0:
          raise ValueError("alpha must be >= 0, got %s." % self.alpha)
      if (
          self.learning_rate in ["constant", "invscaling", "adaptive"]
          and self.learning_rate_init <= 0.0
      ):
          raise ValueError(
              "learning_rate_init must be > 0, got %s."
              % self.learning_rate
          )
      if self.momentum > 1 or self.momentum < 0:
          raise ValueError(
              "momentum must be >= 0 and <= 1, got %s" % self.momentum
          )
      if not isinstance(self.nesterovs_momentum, bool):
          raise ValueError(
              "nesterovs_momentum must be either True or False,"
              " got %s." % self.nesterovs_momentum
          )
      if not isinstance(self.early_stopping, bool):
          raise ValueError(
              "early_stopping must be either True or False,"
              " got %s." % self.early_stopping
          )
      if self.validation_fraction < 0 or self.validation_fraction >= 1:
          raise ValueError(
              "validation_fraction must be >= 0 and < 1, "
              "got %s" % self.validation_fraction
          )
      if self.beta_1 < 0 or self.beta_1 >= 1:
          raise ValueError(
              "beta_1 must be >= 0 and < 1, got %s" % self.beta_1
          )
      if self.beta_2 < 0 or self.beta_2 >= 1:
          raise ValueError(
              "beta_2 must be >= 0 and < 1, got %s" % self.beta_2
          )
      if self.epsilon <= 0.0:
          raise ValueError(
              "epsilon must be > 0, got %s." % self.epsilon
          )
  
      # raise ValueError if not registered
      supported_activations = ("identity", "logistic", "tanh", "relu")
      if self.activation not in supported_activations:
          raise ValueError(
              "The activation '%s' is not supported. Supported "
              "activations are %s."
              % (self.activation, supported_activations)
          )
      if self.learning_rate not in [
          "constant",
          "invscaling",
          "adaptive",
      ]:
          raise ValueError(
              "learning rate %s is not supported. " % self.learning_rate
          )
      supported_solvers = _STOCHASTIC_SOLVERS + ["lbfgs"]
      if self.solver not in supported_solvers:
          raise ValueError(
              "The solver %s is not supported. "
              " Expected one of: %s"
              % (self.solver, ", ".join(supported_solvers))
          )
  
imports: import numpy
  from abc import ABCMeta, abstractmethod
  from scipy.optimize import fmin_l_bfgs_b
  import warnings
  from ..base import BaseEstimator, ClassifierMixin, RegressorMixin
  from ._base import ACTIVATIONS, DERIVATIVES, LOSS_FUNCTIONS
  from ._stochastic_optimizers import SGDOptimizer, AdamOptimizer
  from ..model_selection import train_test_split
  from ..externals import six
  from ..preprocessing import LabelBinarizer
  from ..utils import gen_batches, check_random_state
  from ..utils import shuffle
  from ..utils import check_array, check_X_y, column_or_1d
  from ..exceptions import ConvergenceWarning
  from ..utils.extmath import safe_sparse_dot
  from ..utils.validation import check_is_fitted
  from ..utils.multiclass import _check_partial_fit_first_call, unique_labels
  from ..utils.multiclass import type_of_target
label_desc: Use image node_id 10 for calling the BaseMultilayerPerceptron obj's underlying member method code with example usage: obj._validate_hyperparameters() without return types