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

Класс CategoryEncoding

Класс CategoryEncoding предназначен для кодирования целочисленных категориальных признаков. Он принимает на вход тензор целых чисел и преобразует каждое значение в многомерный вектор (one-hot, multi-hot или count). Первым параметром передается список или целое число, задающее размер словаря (число возможных категорий). Вторым параметром можно указать способ кодирования через output_mode: 'one_hot', 'multi_hot' или 'count'. Также доступен параметр sparse, включающий разреженный вывод.

Синтаксис

tf.keras.layers.CategoryEncoding( num_tokens, [output_mode], [sparse] )

Пример

Давайте закодируем тензор целых чисел 1, 2, 3 в режиме 'one_hot' с размером словаря 5:

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

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

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

Пример

Давайте закодируем двумерный тензор 1, 2 и 3, 4 в режиме 'multi_hot':

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

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

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

Пример

Давайте закодируем тензор 1, 1, 2 в режиме 'count' с размером словаря 4:

import tensorflow as tf layer = tf.keras.layers.CategoryEncoding( num_tokens=4, output_mode='count' ) res = layer(tf.constant([1, 1, 2])) print(res)

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

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

Пример

Давайте получим разреженное представление для тензора 1, 3 в режиме 'one_hot':

import tensorflow as tf layer = tf.keras.layers.CategoryEncoding( num_tokens=5, output_mode='one_hot', sparse=True ) res = layer(tf.constant([1, 3])) print(res)

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

SparseTensor( indices=tf.Tensor( [[0 1] [1 3]], shape=(2, 2), dtype=int64), values=tf.Tensor([1. 1.], shape=(2,), dtype=float32), dense_shape=tf.Tensor([2 5], shape=(2,), dtype=int64))

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

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