Spec-Zone.ru › TensorFlow

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.feature_column`s в слои предварительной обработки Keras
  • Использование дополнительных признаков: предварительная обработка признаков
  • Использование контекстных признаков
  • Создание моделей глубокого поиска

Этот слой помещает каждый элемент входных данных в один из нескольких смежных диапазонов и возвращает целочисленный индекс, указывающий, в какой диапазон был помещён каждый элемент.

Примечание: Этот слой безопасно использовать в конвейере 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"; в зависимости от выбранного значения слой настраивается следующим образом:
  • "int": возвращает непосредственно индексы интервалов после дискретизации.
  • "one_hot": кодирует каждый отдельный элемент входных данных в массив того же размера, что и num_bins, в котором на месте индекса интервала входного элемента находится 1. Если размер последнего измерения равен 1, кодирование выполняется по этому измерению. Если размер последнего измерения не равен 1, для закодированных выходных данных добавляется новое измерение.
  • "multi_hot": кодирует каждый образец во входных данных в один массив того же размера, что и num_bins, в котором для каждого индекса интервала, присутствующего в образце, указано 1. Последнее измерение считается измерением образцов; если форма входных данных равна (..., sample_length), форма выходных данных будет (..., num_tokens).
  • "count": как "multi_hot", но целочисленный массив содержит число вхождений индекса интервала в образце. По умолчанию используется "int".
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API