Spec-Zone.ru › TensorFlow 2.4

tf.lookup.StaticVocabularyTable

Просмотреть исходный код на GitHub

Таблица преобразования строк в идентификаторы, которая сопоставляет ключи вне словаря с корзинами хеширования.

tf.lookup.StaticVocabularyTable(
    initializer, num_oov_buckets, lookup_key_dtype=None, name=None
)

Например, если экземпляр StaticVocabularyTable инициализирован инициализатором строки-в-идентификатор, который отображает:

init = tf.lookup.KeyValueTensorInitializer(
    keys=tf.constant(['emerson', 'lake', 'palmer']),
    values=tf.constant([0, 1, 2], dtype=tf.int64))
table = tf.lookup.StaticVocabularyTable(
   init,
   num_oov_buckets=5)

Объект Vocabulary выполнит следующее отображение:

  • emerson -> 0
  • lake -> 1
  • palmer -> 2
  • <other term> -> bucket_id, где bucket_id будет между 3 и 3 + num_oov_buckets - 1 = 7, вычисленное по формуле: hash(<term>) % num_oov_buckets + vocab_size

Если входной тензор:

input_tensor = tf.constant(["emerson", "lake", "palmer",
                            "king", "crimson"])
table[input_tensor].numpy()
array([0, 1, 2, 6, 7])

Если initializer равно None, используются только корзины вне словаря.

Пример использования:

num_oov_buckets = 3
vocab = ["emerson", "lake", "palmer", "crimnson"]
import tempfile
f = tempfile.NamedTemporaryFile(delete=False)
f.write('\n'.join(vocab).encode('utf-8'))
f.close()
init = tf.lookup.TextFileInitializer(
    f.name,
    key_dtype=tf.string, key_index=tf.lookup.TextFileIndex.WHOLE_LINE,
    value_dtype=tf.int64, value_index=tf.lookup.TextFileIndex.LINE_NUMBER)
table = tf.lookup.StaticVocabularyTable(init, num_oov_buckets)
table.lookup(tf.constant(["palmer", "crimnson" , "king",
                          "tarkus", "black", "moon"])).numpy()
array([2, 3, 5, 6, 6, 4])

Функция хеширования для генерации идентификаторов корзин вне словаря — Fingerprint64.

Аргументы
initializer Объект TableInitializerBase, содержащий данные для инициализации таблицы. Если None, используются только корзины вне словаря.
num_oov_buckets Количество корзин для использования с ключами вне словаря. Должно быть больше нуля.
lookup_key_dtype Тип данных ключей, передаваемых в lookup. По умолчанию initializer.key_dtype, если initializer указан, в противном случае tf.string. Должно быть строкой или целым числом и должно быть приводимо к типу initializer.key_dtype.
name Имя операции (необязательно).
Исключения
ValueError при num_oov_buckets не положительно.
TypeError при lookup_key_dtype или initializer.key_dtype не являются целым числом или строкой. Также, когда initializer.value_dtype != int64.
Атрибуты
key_dtype Тип данных ключей таблицы.
name Имя таблицы.
resource_handle Возвращает дескриптор ресурса, связанный с этим ресурсом.
value_dtype Тип данных значений таблицы.

Методы

lookup

Просмотреть исходный код

lookup(
    keys, name=None
)

Ищет keys в таблице, возвращает соответствующие значения.

Ключи вне словаря сопоставляются с корзинами на основе их хешей.

Аргументы
keys Ключи для поиска. Может быть SparseTensor или плотным Tensor.
name Необязательное имя для операции.
Возвращаемые значения
SparseTensor , если ключи разреженные, RaggedTensor , если ключи разрозненные, в противном случае плотный Tensor.
Исключения
TypeError при keys не соответствует типу данных ключей таблицы.

size

Просмотреть исходный код

size(
    name=None
)

Вычисляет количество элементов в этой таблице.

__getitem__

Просмотреть исходный код

__getitem__(
    keys
)

Ищет keys в таблице, возвращает соответствующие значения.

© 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/lookup/StaticVocabularyTable

Spec-Zone.ru

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