':param loss: Symbolic expression for the loss function.
:param target: A parameterized object to optimize over. It should implement methods of the
:class:`rllab.core.paramerized.Parameterized` class.
:param inputs: A list of symbolic variables as inputs
:return: No return value.'

def update_opt(self, loss, target, inputs, network_outputs, extra_inputs=None):

    self._target = target
    if (extra_inputs is None):
        extra_inputs = list()
    self._hf_optimizer = hf_optimizer(_p=target.get_params(trainable=True), inputs=(inputs + extra_inputs), s=network_outputs, costs=[loss])
    self._opt_fun = lazydict(f_loss=(lambda : compile_function((inputs + extra_inputs), loss)))
