Defined in tensorflow/contrib/learn/python/learn/estimators/

Creates a Head for multi class single label classification. (deprecated)

THIS FUNCTION IS DEPRECATED. It will be removed in a future version. Instructions for updating: Please switch to tf.contrib.estimator.*_head.

The Head uses softmax cross entropy loss.

This head expects to be fed integer labels specifying the class index. But if label_keys is specified, then labels must be strings from this vocabulary, and the predicted classes will be strings from the same vocabulary.


  • n_classes: Integer, number of classes, must be >= 2
  • label_name: String, name of the key in label dict. Can be null if label is a tensor (single headed models).
  • weight_column_name: A string defining feature column name representing weights. It is used to down weight or boost examples during training. It will be multiplied by the loss of the example.
  • enable_centered_bias: A bool. If True, estimator will learn a centered bias variable for each class. Rest of the model structure learns the residual after centered bias.
  • head_name: name of the head. If provided, predictions, summary and metrics keys will be suffixed by "/" + head_name and the default variable scope will be head_name.
  • thresholds: thresholds for eval metrics, defaults to [.5]
  • metric_class_ids: List of class IDs for which we should report per-class metrics. Must all be in the range [0, n_classes). Invalid if n_classes is 2.
  • loss_fn: Optional function that takes (labels, logits, weights) as parameter and returns a weighted scalar loss. weights should be optional. See tf.losses
  • label_keys: Optional list of strings with size [n_classes] defining the label vocabulary. Only supported for n_classes > 2.


An instance of Head for multi class classification.


  • ValueError: if n_classes is < 2.
  • ValueError: If metric_class_ids is provided when n_classes is 2.
  • ValueError: If len(label_keys) != n_classes.