DenseColumn
從稀疏的分類輸入轉換而來。
用法
tf.feature_column.embedding_column(
categorical_column, dimension, combiner='mean', initializer=None,
ckpt_to_load_from=None, tensor_name_in_ckpt=None, max_norm=None, trainable=True,
use_safe_embedding_lookup=True
)
參數
-
categorical_column
由categorical_column_with_*
函數創建的CategoricalColumn
。此列生成作為嵌入查找輸入的稀疏 ID。 -
dimension
指定嵌入維度的整數,必須 > 0。 -
combiner
一個字符串,指定在一行中有多個條目時如何減少。目前支持'mean'、'sqrtn'和'sum',默認為'mean'。 'sqrtn' 通常可以達到很好的準確性,特別是對於 bag-of-words 列。這些中的每一個都可以被認為是列上的示例級別規範化。有關詳細信息,請參閱tf.embedding_lookup_sparse
。 -
initializer
用於嵌入變量初始化的變量初始化函數。如果未指定,則默認為truncated_normal_initializer
,平均值為0.0
和標準差1/sqrt(dimension)
。 -
ckpt_to_load_from
表示要從中恢複列權重的檢查點名稱/模式的字符串。如果tensor_name_in_ckpt
不是None
則為必需。 -
tensor_name_in_ckpt
ckpt_to_load_from
中Tensor
的名稱,從中恢複列權重。如果ckpt_to_load_from
不是None
則需要。 -
max_norm
如果不是None
,則嵌入值被 l2 標準化為該值。 -
trainable
嵌入是否可訓練。默認為真。 -
use_safe_embedding_lookup
如果為真,則使用 safe_embedding_lookup_sparse 而不是 embedding_lookup_sparse。 safe_embedding_lookup_sparse 確保沒有空行,並且所有權重和 id 都是正數,但代價是額外的計算成本。這僅適用於 rank 2 (NxM) 形狀的輸入張量。默認為 true,如果不需要上述檢查,請考慮關閉。請注意,盡管輸出結果可能為 0 或省略,但具有空行不會觸發任何錯誤。
返回
-
DenseColumn
從稀疏輸入轉換而來。
拋出
-
ValueError
如果dimension
不 > 0。 -
ValueError
如果指定了ckpt_to_load_from
和tensor_name_in_ckpt
之一。 -
ValueError
如果initializer
已指定且不可調用。 -
RuntimeError
如果啟用了即刻執行。
當您的輸入是稀疏的,但您想將它們轉換為密集表示(例如,饋送到 DNN)時,請使用此選項。
輸入必須是由任何 categorical_column_*
函數創建的 CategoricalColumn
。以下是使用 embedding_column
和 DNNClassifier
的示例:
video_id = categorical_column_with_identity(
key='video_id', num_buckets=1000000, default_value=0)
columns = [embedding_column(video_id, 9),...]
estimator = tf.estimator.DNNClassifier(feature_columns=columns, ...)
label_column = ...
def input_fn():
features = tf.io.parse_example(
..., features=make_parse_example_spec(columns + [label_column]))
labels = features.pop(label_column.name)
return features, labels
estimator.train(input_fn=input_fn, steps=100)
這是一個使用 embedding_column
和 model_fn 的示例:
def model_fn(features, ...):
video_id = categorical_column_with_identity(
key='video_id', num_buckets=1000000, default_value=0)
columns = [embedding_column(video_id, 9),...]
dense_tensor = input_layer(features, columns)
# Form DNN layers, calculate loss, and return EstimatorSpec.
...
相關用法
- Python tf.feature_column.crossed_column用法及代碼示例
- Python tf.feature_column.sequence_categorical_column_with_identity用法及代碼示例
- Python tf.feature_column.categorical_column_with_vocabulary_list用法及代碼示例
- Python tf.feature_column.categorical_column_with_hash_bucket用法及代碼示例
- Python tf.feature_column.bucketized_column用法及代碼示例
- Python tf.feature_column.categorical_column_with_identity用法及代碼示例
- Python tf.feature_column.sequence_numeric_column用法及代碼示例
- Python tf.feature_column.sequence_categorical_column_with_vocabulary_file用法及代碼示例
- Python tf.feature_column.sequence_categorical_column_with_vocabulary_list用法及代碼示例
- Python tf.feature_column.sequence_categorical_column_with_hash_bucket用法及代碼示例
- Python tf.feature_column.shared_embeddings用法及代碼示例
- Python tf.feature_column.categorical_column_with_vocabulary_file用法及代碼示例
- Python tf.feature_column.indicator_column用法及代碼示例
- Python tf.feature_column.weighted_categorical_column用法及代碼示例
- Python tf.feature_column.numeric_column用法及代碼示例
- Python tf.feature_column.make_parse_example_spec用法及代碼示例
- Python tf.function用法及代碼示例
- Python tf.fingerprint用法及代碼示例
- Python tf.foldl用法及代碼示例
- Python tf.foldr用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.feature_column.embedding_column。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。