编码整数特征的预处理层。
用法
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。