當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.compat.v1.feature_column.linear_model用法及代碼示例


根據給定的 feature_columns 返回線性預測 Tensor

用法

tf.compat.v1.feature_column.linear_model(
    features, feature_columns, units=1, sparse_combiner='sum',
    weight_collections=None, trainable=True, cols_to_vars=None
)

參數

  • features 從鍵到張量的映射。 _FeatureColumn 通過這些鍵查找。例如 numeric_column('price') 將查看此字典中的 'price' 鍵。值是 TensorSparseTensor 取決於相應的 _FeatureColumn
  • feature_columns 一個包含要用作模型輸入的 FeatureColumns 的迭代。所有項目都應該是派生自 _FeatureColumn 的類的實例。
  • units 一個整數,輸出空間的維度。默認值為 1。
  • sparse_combiner 如果分類列是多價的,則指定如何減少的字符串。除了numeric_column, 幾乎所有的列都傳遞給linear_model被視為分類列。它獨立地組合每個分類列。目前支持"mean"、"sqrtn"和"sum",其中"sum"是線性模型的默認值。 "sqrtn" 通常可以達到很好的準確性,特別是對於 bag-of-words 列。
    • "sum":不對列中的特征進行歸一化
    • "mean":對列中的特征做 l1 歸一化
    • "sqrtn":對列中的特征做l2歸一化
  • weight_collections 將添加變量的集合名稱列表。請注意,變量也將添加到集合 tf.GraphKeys.GLOBAL_VARIABLESops.GraphKeys.MODEL_VARIABLES 中。
  • trainable 如果 True 還將變量添加到圖形集合 GraphKeys.TRAINABLE_VARIABLES (請參閱 tf.Variable )。
  • cols_to_vars 如果不None, 必須是一個字典,將填充來自的映射_FeatureColumn到關聯列表Variables。例如,在調用之後,我們可能有 cols_to_vars = { _NumericColumn( key='numeric_feature1', shape=(1,): [],'bias':[], _NumericColumn(key='numeric_feature2', shape=(2,)): []} 如果一列沒有創建變量,它的值將是一個空列表。請注意,cols_to_vars 還將包含一個映射到變量列表的字符串鍵 'bias'。

返回

  • Tensor 表示線性模型的預測/logits。它的形狀是 (batch_size, units),它的 dtype 是 float32

拋出

  • ValueError 如果 feature_columns 中的項目既不是 _DenseColumn 也不是 _CategoricalColumn

此函數根據輸出維度 units 生成加權和。加權和是指分類問題中的對數。它指的是線性回歸問題的預測本身。

關於支持的列的注意事項:linear_model 將分類列視為 indicator_column s。具體來說,假設輸入為SparseTensor,如下所示:

shape = [2, 2]
  {
      [0, 0]:"a"
      [1, 0]:"b"
      [1, 1]:"c"
  }

linear_model 為 "a"、"b"、"c' 的存在分配權重,就像 indicator_column 一樣,而 input_layer 明確要求用 embedding_columnindicator_column 包裝每個分類列。

使用示例:

price = numeric_column('price')
price_buckets = bucketized_column(price, boundaries=[0., 10., 100., 1000.])
keywords = categorical_column_with_hash_bucket("keywords", 10K)
keywords_price = crossed_column('keywords', price_buckets, ...)
columns = [price_buckets, keywords, keywords_price ...]
features = tf.io.parse_example(..., features=make_parse_example_spec(columns))
prediction = linear_model(features, columns)

sparse_combiner 參數的工作方式如下例如,對於表示為分類列的兩個特征:

# Feature 1

  shape = [2, 2]
  {
      [0, 0]:"a"
      [0, 1]:"b"
      [1, 0]:"c"
  }

  # Feature 2

  shape = [2, 3]
  {
      [0, 0]:"d"
      [1, 0]:"e"
      [1, 1]:"f"
      [1, 2]:"f"
  }

使用sparse_combiner 作為"mean",線性模型輸出結果為:

y_0 = 1.0 / 2.0 * ( w_a + w_b ) + w_d + b
  y_1 = w_c + 1.0 / 3.0 * ( w_e + 2.0 * w_f ) + b

其中y_i是輸出,b是偏差,w_x是分配給輸入特征中存在x的權重。

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.feature_column.linear_model。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。