Announcing the TensorFlow Dev Summit 2020 Learn more


TensorFlow 1 version View source on GitHub

Applies weight values to a CategoricalColumn.


Use this when each of your sparse inputs has both an ID and a value. For example, if you're representing text documents as a collection of word frequencies, you can provide 2 parallel sparse input features ('terms' and 'frequencies' below).


Input tf.Example objects:

  features {
    feature {
      key: "terms"
      value {bytes_list {value: "very" value: "model"}}
    feature {
      key: "frequencies"
      value {float_list {value: 0.3 value: 0.1}}
  features {
    feature {
      key: "terms"
      value {bytes_list {value: "when" value: "course" value: "human"}}
    feature {
      key: "frequencies"
      value {float_list {value: 0.4 value: 0.1 value: 0.2}}
categorical_column = categorical_column_with_hash_bucket(
    column_name='terms', hash_bucket_size=1000)
weighted_column = weighted_categorical_column(
    categorical_column=categorical_column, weight_feature_key='frequencies')
columns = [weighted_column, ...]
features =, features=make_parse_example_spec(columns))
linear_prediction, _, _ = linear_model(features, columns)

This assumes the input dictionary contains a SparseTensor for key 'terms', and a SparseTensor for key 'frequencies'. These 2 tensors must have the same indices and dense shape.


  • categorical_column: A CategoricalColumn created by categorical_column_with_* functions.
  • weight_feature_key: String key for weight values.
  • dtype: Type of weights, such as tf.float32. Only float and integer weights are supported.


A CategoricalColumn composed of two sparse features: one represents id, the other represents weight (value) of the id feature in that example.


  • ValueError: if dtype is not convertible to float.

Compat aliases