一個預處理層,按範圍對連續特征進行存儲。
繼承自:PreprocessingLayer
、Layer
、Module
用法
tf.keras.layers.Discretization(
bin_boundaries=None, num_bins=None, epsilon=0.01, output_mode='int',
sparse=False, **kwargs
)
屬性
-
bin_boundaries
bin 邊界列表。最左邊和最右邊的 bin 將始終擴展到-inf
和inf
,因此bin_boundaries=[0., 1., 2.]
生成 bin(-inf, 0.)
,[0., 1.)
,[1., 2.)
和[2., +inf)
。如果設置了此選項,則不應調用adapt()
。 -
num_bins
要計算的二進製數的整數。如果設置了此選項,則應調用adapt()
來了解 bin 邊界。 -
epsilon
容錯,通常是接近零的一小部分(例如 0.01)。較高的 epsilon 值會增加分位數近似值,因此會導致更多不相等的桶,但可以提高性能和資源消耗。 -
output_mode
層輸出的規範。默認為"int"
.值可以是"int"
,"one_hot"
,"multi_hot"
, 或者"count"
配置層如下:"int"
:直接返回分類後的 bin 索引。"one_hot"
:將輸入中的每個單獨元素編碼為與num_bins
大小相同的數組,在輸入的 bin 索引處包含 1。如果最後一個維度是大小 1,將在該維度上進行編碼。如果最後一個維度不是大小 1,將為編碼輸出附加一個新維度。"multi_hot"
:將輸入中的每個樣本編碼為與num_bins
大小相同的單個數組,其中包含樣本中存在的每個 bin 索引索引的 1。將最後一個維度視為樣本維度,如果輸入形狀為(..., sample_length)
,則輸出形狀將為(..., num_tokens)
。"count"
:與"multi_hot"
一樣,但 int 數組包含 bin 索引在樣本中出現的次數的計數。
-
sparse
布爾值。僅適用於"one_hot"
,"multi_hot"
和"count"
輸出模式。如果為 True,則返回SparseTensor
而不是密集的Tensor
。默認為假。 -
is_adapted
圖層是否已經適合數據。
該層會將其輸入數據的每個元素放入幾個連續範圍之一,並輸出一個整數索引,指示每個元素放置在哪個範圍內。
有關預處理層的概述和完整列表,請參閱預處理指南。
輸入形狀:
任何維度 2 或更高的 tf.Tensor
或 tf.RaggedTensor
。
輸出形狀:
與輸入形狀相同。
例子:
根據提供的存儲桶對浮點值進行分桶。
>>> input = np.array([[-1.5, 1.0, 3.4, .5], [0.0, 3.0, 1.3, 0.0]])
>>> layer = tf.keras.layers.Discretization(bin_boundaries=[0., 1., 2.])
>>> layer(input)
<tf.Tensor:shape=(2, 4), dtype=int64, numpy=
array([[0, 2, 3, 1],
[1, 3, 2, 1]], dtype=int64)>
根據要計算的桶數對浮點值進行桶化。
>>> input = np.array([[-1.5, 1.0, 3.4, .5], [0.0, 3.0, 1.3, 0.0]])
>>> layer = tf.keras.layers.Discretization(num_bins=4, epsilon=0.01)
>>> layer.adapt(input)
>>> layer(input)
<tf.Tensor:shape=(2, 4), dtype=int64, numpy=
array([[0, 2, 3, 2],
[1, 3, 3, 1]], dtype=int64)>
相關用法
- Python tf.keras.layers.Dropout用法及代碼示例
- Python tf.keras.layers.Dot用法及代碼示例
- Python tf.keras.layers.Dense用法及代碼示例
- Python tf.keras.layers.DenseFeatures用法及代碼示例
- Python tf.keras.layers.InputLayer用法及代碼示例
- Python tf.keras.layers.serialize用法及代碼示例
- Python tf.keras.layers.maximum用法及代碼示例
- Python tf.keras.layers.LayerNormalization用法及代碼示例
- Python tf.keras.layers.Conv2D用法及代碼示例
- Python tf.keras.layers.RepeatVector用法及代碼示例
- Python tf.keras.layers.Multiply用法及代碼示例
- Python tf.keras.layers.Activation用法及代碼示例
- Python tf.keras.layers.Conv1D用法及代碼示例
- Python tf.keras.layers.experimental.preprocessing.PreprocessingLayer.adapt用法及代碼示例
- Python tf.keras.layers.CategoryEncoding用法及代碼示例
- Python tf.keras.layers.subtract用法及代碼示例
- Python tf.keras.layers.experimental.preprocessing.HashedCrossing用法及代碼示例
- Python tf.keras.layers.Subtract用法及代碼示例
- Python tf.keras.layers.ZeroPadding3D用法及代碼示例
- Python tf.keras.layers.MaxPool3D用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.layers.Discretization。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。