from tensorflow.python.ops import gradients

    """See base class."""
    global_step = variables.get_global_step()
    assert global_step
    loss = self._loss(
        self._logits(features), targets, self._get_weight_tensor(features))
    logging_ops.scalar_summary("loss", loss)

    linear_vars = self._get_linear_vars()
    dnn_vars = self._get_dnn_vars()
    grads = gradients.gradients(loss, dnn_vars + linear_vars)
    dnn_grads = grads[0:len(dnn_vars)]
    linear_grads = grads[len(dnn_vars):]

    train_ops = self._get_linear_training_ops(
        linear_grads, linear_vars) + self._get_dnn_training_ops(dnn_grads,
                                                                dnn_vars)

    train_step = control_flow_ops.group(*train_ops, name="combined_training_op")
