tf.feature_column.categorical_column_with_vocabulary_list
| Просмотреть исходный код на GitHub |
A CategoricalColumn со встроенным словарем.
tf.feature_column.categorical_column_with_vocabulary_list(
key, vocabulary_list, dtype=None, default_value=-1, num_oov_buckets=0
)
Используйте этот класс, когда ваши входные данные имеют строковый или целочисленный формат и у вас есть встроенный словарь, сопоставляющий каждое значение с целочисленным идентификатором. По умолчанию значения вне словаря игнорируются. Используйте num_oov_buckets или default_value (но не оба сразу), чтобы указать, как учитывать значения вне словаря.
Для входного словаря features, features[key] это либо Tensor, либо SparseTensor. Если Tensor, пропущенные значения могут быть представлены как -1 для целых чисел и '' для строк, которые будут отброшены этим столбцом признаков.
Пример с num_oov_buckets: В следующем примере каждому входу в vocabulary_list присваивается идентификатор 0-3, соответствующий его индексу (например, вход 'B' дает выход 2). Все остальные входы хешируются и получают идентификатор 4-5.
colors = categorical_column_with_vocabulary_list(
key='colors', vocabulary_list=('R', 'G', 'B', 'Y'),
num_oov_buckets=2)
columns = [colors, ...]
features = tf.io.parse_example(..., features=make_parse_example_spec(columns))
linear_prediction, _, _ = linear_model(features, columns)
Пример с default_value: В следующем примере каждому входу в vocabulary_list присваивается идентификатор 0-4, соответствующий его индексу (например, вход 'B' дает выход 3). Все остальные входы получают значение default_value 0.
colors = categorical_column_with_vocabulary_list(
key='colors', vocabulary_list=('X', 'R', 'G', 'B', 'Y'), default_value=0)
columns = [colors, ...]
features = tf.io.parse_example(..., features=make_parse_example_spec(columns))
linear_prediction, _, _ = linear_model(features, columns)
И для создания встраивания с помощью:
columns = [embedding_column(colors, 3),...] features = tf.io.parse_example(..., features=make_parse_example_spec(columns)) dense_tensor = input_layer(features, columns)
| Аргументы | |
|---|---|
key | Уникальная строка, идентифицирующая входной признак. Она используется в качестве имени столбца и ключа словаря для конфигураций разбора признаков, объектов признаков Tensor и столбцов признаков. |
vocabulary_list | Упорядоченный итерируемый объект, определяющий словарь. Каждый признак сопоставляется с индексом его значения (если присутствует) в vocabulary_list. Должен быть преобразуем к типу dtype. |
dtype | Тип признаков. Поддерживаются только строковые и целочисленные типы. Если None, он будет выведен из vocabulary_list. |
default_value | Целочисленное значение ID, возвращаемое для значений признаков вне словаря, по умолчанию -1. Не может быть указано вместе с положительным num_oov_buckets. |
num_oov_buckets | Неотрицательное целое число, количество ведер для значений вне словаря. Все входные значения вне словаря будут назначены идентификаторам в диапазоне [len(vocabulary_list), len(vocabulary_list)+num_oov_buckets) на основе хеширования входного значения. Положительный num_oov_buckets не может быть указан вместе с default_value. |
| Возвращаемое значение | |
|---|---|
A CategoricalColumn со встроенным словарем. |
| Исключения | |
|---|---|
ValueError | если vocabulary_list пустой или содержит дублирующиеся ключи. |
ValueError | num_oov_buckets - отрицательное целое число. |
ValueError | num_oov_buckets и default_value указаны оба. |
ValueError | если dtype не является целым числом или строкой. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/feature_column/categorical_column_with_vocabulary_list