from tensorflow.python.framework import ops

    logits = self._logits(features, is_training=True)
    if self._enable_centered_bias:
      centered_bias_step = [self._centered_bias_step(targets, features)]
    else:
      centered_bias_step = []
    with ops.control_dependencies(centered_bias_step):
      loss = self._target_column.loss(logits, targets, features)
    logging_ops.scalar_summary("loss", loss)

    linear_train_step = self._linear_model.get_train_step(loss)
    dnn_train_step = (self._dnn_model.get_train_step(loss)
                      if self._dnn_model else [])

    with ops.control_dependencies(linear_train_step + dnn_train_step):
      with ops.get_default_graph().colocate_with(global_step):
        return state_ops.assign_add(global_step, 1).op, loss

  def _get_eval_ops(self, features, targets, metrics=None):
    raise NotImplementedError

  def _get_predict_ops(self, features):
    """See base class."""
    features = self._get_feature_dict(features)
    logits = self._logits(features)
    return self._target_column.logits_to_predictions(logits, proba=True)

  def _get_feature_ops_from_example(self, examples_batch):
    column_types = layers.create_feature_spec_for_parsing((
