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


Python tf.keras.layers.CategoryEncoding用法及代碼示例


編碼整數特征的預處理層。

繼承自:LayerModule

用法

tf.keras.layers.CategoryEncoding(
    num_tokens=None, output_mode='multi_hot', sparse=False, **kwargs
)

參數

  • num_tokens 該層應支持的令牌總數。該層的所有輸入必須是 0 <= value < num_tokens 範圍內的整數,否則將引發錯誤。
  • output_mode 層輸出的規範。默認為"multi_hot".值可以是"one_hot","multi_hot"或者"count",配置層如下:
    • "one_hot" :將輸入中的每個單獨元素編碼為 num_tokens 大小的數組,在元素索引處包含 1。如果最後一個維度是大小 1,將在該維度上進行編碼。如果最後一個維度不是大小 1,將為編碼輸出附加一個新維度。
    • "multi_hot" :將輸入中的每個樣本編碼為 num_tokens 大小的單個數組,其中包含樣本中存在的每個詞匯術語的 1。將最後一個維度視為樣本維度,如果輸入形狀為 (..., sample_length) ,則輸出形狀將為 (..., num_tokens)
    • "count" :與 "multi_hot" 類似,但 int 數組包含該索引處的標記出現在樣本中的次數的計數。對於所有輸出模式,目前僅支持輸出到 rank 2。
  • sparse 布爾值。如果為真,則返回 SparseTensor 而不是密集的 Tensor 。默認為 False

當預先知道令牌的總數時,該層提供了將數據壓縮為分類編碼的選項。它接受整數值作為輸入,並輸出這些輸入的密集或稀疏表示。對於不知道令牌總數的整數輸入,請改用tf.keras.layers.IntegerLookup

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

例子:

One-hot編碼數據

layer = tf.keras.layers.CategoryEncoding(
          num_tokens=4, output_mode="one_hot")
layer([3, 2, 0, 1])
<tf.Tensor:shape=(4, 4), dtype=float32, numpy=
  array([[0., 0., 0., 1.],
         [0., 0., 1., 0.],
         [1., 0., 0., 0.],
         [0., 1., 0., 0.]], dtype=float32)>

Multi-hot編碼數據

layer = tf.keras.layers.CategoryEncoding(
          num_tokens=4, output_mode="multi_hot")
layer([[0, 1], [0, 0], [1, 2], [3, 1]])
<tf.Tensor:shape=(4, 4), dtype=float32, numpy=
  array([[1., 1., 0., 0.],
         [1., 0., 0., 0.],
         [0., 1., 1., 0.],
         [0., 1., 0., 1.]], dtype=float32)>

"count" 模式下使用加權輸入

layer = tf.keras.layers.CategoryEncoding(
          num_tokens=4, output_mode="count")
count_weights = np.array([[.1, .2], [.1, .1], [.2, .3], [.4, .2]])
layer([[0, 1], [0, 0], [1, 2], [3, 1]], count_weights=count_weights)
<tf.Tensor:shape=(4, 4), dtype=float64, numpy=
  array([[0.1, 0.2, 0. , 0. ],
         [0.2, 0. , 0. , 0. ],
         [0. , 0.2, 0.3, 0. ],
         [0. , 0.2, 0. , 0.4]])>

調用參數:

  • inputs:整數輸入的一維或二維張量。
  • count_weights: 一個形狀相同的張量inputs求和時表示每個樣本值的權重count模式。不用於"multi_hot"或者"one_hot"模式。

相關用法


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