tf.keras.layers.Discretization
Слой предобработки, который группирует непрерывные признаки по диапазонам.
Наследуется от: Layer, Operation
tf.keras.layers.Discretization(
bin_boundaries=None,
num_bins=None,
epsilon=0.01,
output_mode='int',
sparse=False,
dtype=None,
name=None
)
Используется в ноутбуках
| Используется в руководстве | Используется в учебниках |
|---|---|
Этот слой поместит каждый элемент входных данных в один из нескольких смежных диапазонов и выведет целочисленный индекс, указывающий, в какой диапазон был помещен каждый элемент.
Примечание: Этот слой безопасно использовать внутри конвейера tf.data (независимо от используемого бэкэнда).
| Форма входных данных | |
|---|---|
| Любой массив размерности 2 или выше. |
| Форма выходных данных | |
|---|---|
| Такая же, как форма входных данных. |
| Аргументы | |
|---|---|
bin_boundaries | Список границ бинов. Левый и правый бины всегда будут простираться до -inf и inf, поэтому bin_boundaries=[0., 1., 2.] создает бины (-inf, 0.), [0., 1.), [1., 2.) и [2., +inf). Если этот параметр установлен, adapt() не должен вызываться. |
num_bins | Целое число бинов для вычисления. Если этот параметр установлен, adapt() должен быть вызван для обучения границ бинов. |
epsilon | Допуск ошибки, обычно небольшая дробь, близкая к нулю (например, 0,01). Более высокие значения epsilon увеличивают приближение квантилей, а следовательно, приводят к более неравномерным бинам, но могут улучшить производительность и потребление ресурсов. |
output_mode | Спецификация для выхода слоя. Значения могут быть "int", "one_hot", "multi_hot" или "count", настраивая слой следующим образом:
|
sparse | Булево значение. Применимо только к режимам вывода "one_hot", "multi_hot" и "count". Поддерживается только с бэкэндом TensorFlow. Если True, возвращает SparseTensor вместо плотного Tensor. По умолчанию False. |
Примеры:
Дискретизация значений с плавающей запятой на основе предоставленных бинов.
>>> input = np.array([[-1.5, 1.0, 3.4, .5], [0.0, 3.0, 1.3, 0.0]])
>>> layer = Discretization(bin_boundaries=[0., 1., 2.])
>>> layer(input)
array([[0, 2, 3, 1],
[1, 3, 2, 1]])
Дискретизация значений с плавающей запятой на основе количества вычисляемых бинов.
>>> input = np.array([[-1.5, 1.0, 3.4, .5], [0.0, 3.0, 1.3, 0.0]])
>>> layer = Discretization(num_bins=4, epsilon=0.01)
>>> layer.adapt(input)
>>> layer(input)
array([[0, 2, 3, 2],
[1, 3, 3, 1]])
| Атрибуты | |
|---|---|
input | Возвращает тензор(ы) входных данных символической операции. Возвращает только тензор(ы), соответствующие первому вызову операции. |
output | Возвращает тензор(ы) выхода слоя. Возвращает только тензор(ы), соответствующие первому вызову операции. |
Методы
adapt
adapt(
data, steps=None
)
Вычисляет границы бинов из квантилей в наборе входных данных.
Вызов adapt() на слое Discretization — это альтернатива передаче аргумента bin_boundaries во время создания. Слой Discretization всегда должен быть адаптирован к набору данных или передан bin_boundaries.
Во время adapt() слой оценит квантильные границы входного набора данных. Количество квантилей может быть контролировано с помощью аргумента num_bins, а точность квантильных границ — с помощью аргумента epsilon.
| Аргументы | |
|---|---|
data | Данные для обучения. Может передаваться как пакетный tf.data.Dataset или как массив NumPy. |
steps | Целое число или None. Общее количество шагов (пакетов образцов) для обработки. Если data — tf.data.Dataset и steps — None, adapt() будет выполняться до истощения входного набора данных. При передаче бесконечно повторяющегося набора данных вы должны указать аргумент steps. Этот аргумент не поддерживается при вводе массивов или списков. |
finalize_state
finalize_state()
from_config
@classmethod
from_config(
config
)
Создает слой из его конфигурации.
Этот метод — обратный get_config, позволяющий создать тот же слой из словаря конфигурации. Он не обрабатывает соединение слоев (обрабатывается Network), ни веса (обрабатываются set_weights).
| Аргументы | |
|---|---|
config | Словарь Python, обычно выход get_config. |
| Возвращает | |
|---|---|
| Экземпляр слоя. |
reset_state
reset_state()
symbolic_call
symbolic_call(
*args, **kwargs
)
update_state
update_state(
data
)
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/keras/layers/Discretization