tf.feature_column.categorical_column_with_vocabulary_file
| Просмотреть исходный код на GitHub |
Столбец категориальных данных с файлом словаря.
tf.feature_column.categorical_column_with_vocabulary_file(
key, vocabulary_file, vocabulary_size=None, dtype=tf.dtypes.string,
default_value=None, num_oov_buckets=0
)
Используйте этот столбец, когда ваши данные представлены в строчном или целочисленном формате, и у вас есть файл словаря, сопоставляющий каждое значение с целочисленным идентификатором. По умолчанию значения, отсутствующие в словаре, игнорируются. Используйте любой из (но не оба) num_oov_buckets и default_value, чтобы указать, как обрабатывать значения, отсутствующие в словаре.
Для входного словаря features, features[key] может быть Tensor или SparseTensor. Если Tensor, пропущенные значения могут быть представлены как -1 для целых чисел и как '' для строк, которые будут отброшены этим столбцом.
Пример с num_oov_buckets: Файл '/us/states.txt' содержит 50 строк, каждая из которых представляет собой двухсимвольное сокращение штата США. Все значения, совпадающие с этими сокращениями, будут присвоены идентификаторы от 0 до 49, соответствующие номеру строки в файле. Все остальные значения будут хэшированы и присвоены идентификаторы от 50 до 54.
states = categorical_column_with_vocabulary_file(
key='states', vocabulary_file='/us/states.txt', vocabulary_size=50,
num_oov_buckets=5)
columns = [states, ...]
features = tf.io.parse_example(..., features=make_parse_example_spec(columns))
linear_prediction = linear_model(features, columns)
Пример с default_value: Файл '/us/states.txt' содержит 51 строку - первая строка - 'XX', а остальные 50 строк содержат двухсимвольные сокращения штатов США. Буквальное 'XX' во входных данных и другие отсутствующие в файле значения будут присвоены идентификатор 0. Все остальные значения будут присвоены соответствующий номер строки от 1 до 50.
states = categorical_column_with_vocabulary_file(
key='states', vocabulary_file='/us/states.txt', vocabulary_size=51,
default_value=0)
columns = [states, ...]
features = tf.io.parse_example(..., features=make_parse_example_spec(columns))
linear_prediction, _, _ = linear_model(features, columns)
И для создания встраивания используйте:
columns = [embedding_column(states, 3),...] features = tf.io.parse_example(..., features=make_parse_example_spec(columns)) dense_tensor = input_layer(features, columns)
| Аргументы | |
|---|---|
key | Уникальная строка, идентифицирующая входной признак. Она используется в качестве имени столбца и ключа словаря для конфигураций разбора признаков, объектов признаков Tensor и столбцов признаков. |
vocabulary_file | Имя файла словаря. |
vocabulary_size | Количество элементов в словаре. Это значение должно быть не больше длины vocabulary_file, если меньше, то последующие значения игнорируются. Если None, то устанавливается равным длине vocabulary_file. |
dtype | Тип признаков. Поддерживаются только строковый и целочисленный типы. |
default_value | Целочисленное значение идентификатора, возвращаемое для значений признаков, отсутствующих в словаре. По умолчанию -1. Это значение не может быть указано вместе с положительным num_oov_buckets. |
num_oov_buckets | Неотрицательное целое число, количество ведер для значений, отсутствующих в словаре. Все значения, отсутствующие в словаре, будут присвоены идентификаторы в диапазоне [vocabulary_size, vocabulary_size+num_oov_buckets) на основе хэша входного значения. Положительный num_oov_buckets не может быть указан вместе с default_value. |
| Возвращаемое значение | |
|---|---|
| Столбец категориальных данных с файлом словаря. |
| Исключения | |
|---|---|
ValueError | Файл vocabulary_file отсутствует или не может быть открыт. |
ValueError | Файл vocabulary_size отсутствует или содержит менее 1 элемента. |
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.4/api_docs/python/tf/feature_column/categorical_column_with_vocabulary_file