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


Python tf.keras.layers.experimental.preprocessing.HashedCrossing用法及代碼示例


使用"hashing trick" 跨越特征的預處理層。

繼承自:LayerModule

用法

tf.keras.layers.experimental.preprocessing.HashedCrossing(
    num_bins, output_mode='int', sparse=False, **kwargs
)

參數

  • num_bins 哈希箱的數量。
  • output_mode 層輸出的規範。默認為"int".值可以是"int", 或者"one_hot"配置層如下:
    • "int" :直接返回整數 bin 索引。
    • "one_hot" :將輸入中的每個單獨元素編碼為與 num_bins 大小相同的數組,在輸入的 bin 索引處包含 1。
  • sparse 布爾值。僅適用於"one_hot" 模式。如果為 True,則返回 SparseTensor 而不是密集的 Tensor 。默認為假。
  • **kwargs 構造層的關鍵字參數。

該層使用"hasing trick" 執行分類特征的交叉。從概念上講,轉換可以被認為是:hash(concatenation of features) % num_bins

該層目前僅執行標量輸入和成批標量輸入的交叉。有效的輸入形狀是 (batch_size, 1) , (batch_size,)()

有關預處理層的概述和完整列表,請參閱預處理指南。

例子:

跨越兩個標量特征。

layer = tf.keras.layers.HashedCrossing(num_bins=5)
feat1 = tf.constant(['A', 'B', 'A', 'B', 'A'])
feat2 = tf.constant([101, 101, 101, 102, 102])
layer((feat1, feat2))
<tf.Tensor:shape=(5, 1), dtype=int64, numpy=array([1, 4, 1, 6, 3])>

交叉和one-hotting 兩個標量特征。

layer = tf.keras.layers.HashedCrossing(num_bins=5, output_mode='one_hot')
feat1 = tf.constant(['A', 'B', 'A', 'B', 'A'])
feat2 = tf.constant([101, 101, 101, 102, 102])
layer((feat1, feat2))
<tf.Tensor:shape=(5, 10), dtype=float32, numpy=
array([[0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],
       [0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],
       [0., 0., 0., 1., 0., 0., 0., 0., 0., 0.]], dtype=float32)>

相關用法


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