import tensorflow as tf

            inputs (list[tf.Tensor]): List of input placeholders.
            extra_inputs (list[tf.Tensor]): List of extra input placeholders.
            kwargs (dict): Extra unused keyword arguments. Some optimizers
                have extra input, e.g. KL constraint.

        """
        del kwargs
        with tf.name_scope(self._name):
            self._target = target

            self._train_op = self._tf_optimizer.minimize(
                loss, var_list=target.get_params())

            if extra_inputs is None:
