編碼整數特征的預處理層。
用法
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"
模式。
相關用法
- Python tf.keras.layers.Conv2D用法及代碼示例
- Python tf.keras.layers.Conv1D用法及代碼示例
- Python tf.keras.layers.Conv1DTranspose用法及代碼示例
- Python tf.keras.layers.Cropping1D用法及代碼示例
- Python tf.keras.layers.Cropping2D用法及代碼示例
- Python tf.keras.layers.Cropping3D用法及代碼示例
- Python tf.keras.layers.Conv3D用法及代碼示例
- Python tf.keras.layers.Conv2DTranspose用法及代碼示例
- Python tf.keras.layers.Conv3DTranspose用法及代碼示例
- Python tf.keras.layers.Concatenate用法及代碼示例
- Python tf.keras.layers.InputLayer用法及代碼示例
- Python tf.keras.layers.serialize用法及代碼示例
- Python tf.keras.layers.Dropout用法及代碼示例
- Python tf.keras.layers.maximum用法及代碼示例
- Python tf.keras.layers.LayerNormalization用法及代碼示例
- Python tf.keras.layers.RepeatVector用法及代碼示例
- Python tf.keras.layers.Multiply用法及代碼示例
- Python tf.keras.layers.Activation用法及代碼示例
- Python tf.keras.layers.experimental.preprocessing.PreprocessingLayer.adapt用法及代碼示例
- Python tf.keras.layers.subtract用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.layers.CategoryEncoding。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。