РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
624 of 824 menu

Класс IntegerLookup

Класс IntegerLookup преобразует целые числа в последовательность индексов. Слой может работать в двух режимах: как слой предобработки Keras и как самостоятельный объект для преобразования данных. Первым параметром передаётся словарь vocabulary с целыми числами. Параметр num_oov_indices задаёт количество индексов для чисел, которых нет в словаре. Параметр mask_token задаёт специальное значение для маскировки. Параметр oov_token задаёт значение для неизвестных чисел. Параметр output_mode определяет формат вывода: int, one_hot, multi_hot или count.

Слой поддерживает адаптацию к данным с помощью метода adapt. При вызове метода слой анализирует переданные целые числа и строит на их основе словарь.

Синтаксис

tf.keras.layers.IntegerLookup( max_tokens=None, num_oov_indices=1, mask_token=None, oov_token=-1, vocabulary=None, output_mode='int', sparse=False, name=None )

Пример

Давайте создадим слой IntegerLookup с фиксированным словарем и преобразуем целые числа:

import tensorflow as tf layer = tf.keras.layers.IntegerLookup( vocabulary=[1, 2, 3, 4, 5], output_mode='int' ) t = tf.constant([[1, 2, 3], [4, 5, 1]]) res = layer(t) print(res)

Результат выполнения кода:

tf.Tensor( [[1 2 3] [4 5 1]], shape=(2, 3), dtype=int64)

Пример

Давайте создадим слой с режимом вывода one_hot:

import tensorflow as tf layer = tf.keras.layers.IntegerLookup( vocabulary=[1, 2, 3, 4, 5], output_mode='one_hot' ) t = tf.constant([[1, 2, 3], [4, 5, 1]]) res = layer(t) print(res)

Результат выполнения кода:

tf.Tensor( [[[0. 1. 0. 0. 0. 0.] [0. 0. 1. 0. 0. 0.] [0. 0. 0. 1. 0. 0.]] [[0. 0. 0. 0. 1. 0.] [0. 0. 0. 0. 0. 1.] [0. 1. 0. 0. 0. 0.]]], shape=(2, 3, 6), dtype=float32)

Пример

Давайте создадим слой с режимом вывода multi_hot и обработаем одномерный тензор:

import tensorflow as tf layer = tf.keras.layers.IntegerLookup( vocabulary=[1, 2, 3, 4, 5], output_mode='multi_hot' ) t = tf.constant([1, 2, 3, 4, 5]) res = layer(t) print(res)

Результат выполнения кода:

tf.Tensor([0. 1. 1. 1. 1. 1.], shape=(6,), dtype=float32)

Пример

Давайте используем метод adapt для автоматического построения словаря из входных данных:

import tensorflow as tf layer = tf.keras.layers.IntegerLookup( output_mode='int' ) data = tf.constant([[10, 20, 30], [40, 50, 10]]) layer.adapt(data) t = tf.constant([[10, 20, 30], [40, 50, 10]]) res = layer(t) print(res)

Результат выполнения кода:

tf.Tensor( [[1 2 3] [4 5 1]], shape=(2, 3), dtype=int64)

Пример

Давайте создадим слой с несколькими индексами для неизвестных значений num_oov_indices и проверим обработку числа, которого нет в словаре:

import tensorflow as tf layer = tf.keras.layers.IntegerLookup( vocabulary=[1, 2, 3, 4, 5], num_oov_indices=1, output_mode='int' ) t = tf.constant([1, 99, 3]) res = layer(t) print(res)

Результат выполнения кода:

tf.Tensor([1 0 3], shape=(3,), dtype=int64)

Смотрите также

  • класс CategoryEncoding,
    который преобразует категориальные признаки в векторы
  • класс Discretization,
    который разбивает непрерывные значения на интервалы
  • класс Hashing,
    который преобразует категории в хеш-индексы
  • функцию to_number,
    которая преобразует строки в числа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить