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


Python tf.feature_column.categorical_column_with_identity用法及代碼示例


返回標識值的CategoricalColumn

用法

tf.feature_column.categorical_column_with_identity(
    key, num_buckets, default_value=None
)

參數

  • key 標識輸入特征的唯一字符串。它用作特征解析配置、特征Tensor 對象和特征列的列名和字典鍵。
  • num_buckets 輸入和輸出的範圍是 [0, num_buckets)
  • default_value 如果設置,超出範圍 [0, num_buckets) 的值將替換為此值。如果未設置,值 >= num_buckets 將導致失敗,而值

返回

  • 返回標識值的CategoricalColumn

拋出

  • ValueError 如果num_buckets 小於一。
  • ValueError 如果 default_value 不在 [0, num_buckets) 範圍內。

當您的輸入是 [0, num_buckets) 範圍內的整數並且您希望將輸入值本身用作分類 ID 時,請使用此選項。如果指定,超出此範圍的值將導致 default_value,否則將失敗。

通常,這用於整數索引的連續範圍,但並非必須如此。但是,如果許多 ID 未被使用,這可能效率低下。在這種情況下考慮categorical_column_with_hash_bucket

對於輸入字典 features , features[key]TensorSparseTensor 。如果 Tensor ,缺失值可以用 -1 表示 int 和 '' 表示 string,這將被此特征列刪除。

在以下示例中,為 [0, 1000000) 範圍內的每個輸入分配了相同的值。所有其他輸入都分配為default_value 0。請注意,輸入中的文字 0 將產生相同的默認 ID。

線性模型:

import tensorflow as tf
video_id = tf.feature_column.categorical_column_with_identity(
    key='video_id', num_buckets=1000000, default_value=0)
columns = [video_id]
features = {'video_id':tf.sparse.from_dense([[2, 85, 0, 0, 0],
[33,78, 2, 73, 1]])}
linear_prediction = tf.compat.v1.feature_column.linear_model(features,
columns)

嵌入 DNN 模型:

import tensorflow as tf
video_id = tf.feature_column.categorical_column_with_identity(
    key='video_id', num_buckets=1000000, default_value=0)
columns = [tf.feature_column.embedding_column(video_id, 9)]
features = {'video_id':tf.sparse.from_dense([[2, 85, 0, 0, 0],
[33,78, 2, 73, 1]])}
input_layer = tf.keras.layers.DenseFeatures(columns)
dense_tensor = input_layer(features)

相關用法


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