tf.keras.layers.Discretization
Слой предварительной обработки, который разбивает непрерывные признаки на диапазоны.
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