根據給定的 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' 鍵。值是Tensor
或SparseTensor
取決於相應的_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_VARIABLES
和ops.GraphKeys.MODEL_VARIABLES
中。 -
trainable
如果True
還將變量添加到圖形集合GraphKeys.TRAINABLE_VARIABLES
(請參閱tf.Variable
)。 -
cols_to_vars
如果不None
, 必須是一個字典,將填充來自的映射_FeatureColumn
到關聯列表Variable
s。例如,在調用之後,我們可能有 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_column
或 indicator_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
的權重。
相關用法
- Python tf.compat.v1.feature_column.categorical_column_with_vocabulary_file用法及代碼示例
- Python tf.compat.v1.feature_column.make_parse_example_spec用法及代碼示例
- Python tf.compat.v1.feature_column.shared_embedding_columns用法及代碼示例
- Python tf.compat.v1.feature_column.input_layer用法及代碼示例
- Python tf.compat.v1.foldr用法及代碼示例
- Python tf.compat.v1.fixed_size_partitioner用法及代碼示例
- Python tf.compat.v1.foldl用法及代碼示例
- Python tf.compat.v1.flags.BaseListParser用法及代碼示例
- Python tf.compat.v1.flags.FlagHolder用法及代碼示例
- Python tf.compat.v1.distributions.Multinomial.stddev用法及代碼示例
- Python tf.compat.v1.distribute.MirroredStrategy.experimental_distribute_dataset用法及代碼示例
- Python tf.compat.v1.data.TFRecordDataset.interleave用法及代碼示例
- Python tf.compat.v1.distributions.Bernoulli.cross_entropy用法及代碼示例
- Python tf.compat.v1.Variable.eval用法及代碼示例
- Python tf.compat.v1.train.FtrlOptimizer.compute_gradients用法及代碼示例
- Python tf.compat.v1.layers.conv3d用法及代碼示例
- Python tf.compat.v1.strings.length用法及代碼示例
- Python tf.compat.v1.data.Dataset.snapshot用法及代碼示例
- Python tf.compat.v1.data.experimental.SqlDataset.reduce用法及代碼示例
- Python tf.compat.v1.data.TextLineDataset.from_tensors用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.feature_column.linear_model。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。