Spec-Zone.ru › TensorFlow

tf.lookup.experimental.DenseHashTable

Изменяемая хеш-таблица с более быстрым поиском и повышенным потреблением памяти.

Наследуется от: TrackableResource

Просмотреть псевдонимы

Псевдонимы для обеспечения совместимости при миграции

Подробнее см. в руководстве по миграции.

tf.compat.v1.lookup.experimental.DenseHashTable

tf.lookup.experimental.DenseHashTable(
    key_dtype,
    value_dtype,
    default_value,
    empty_key,
    deleted_key,
    initial_num_buckets=None,
    name='MutableDenseHashTable',
    checkpoint=True,
    experimental_is_anonymous=False
)

Данные можно добавлять с помощью метода insert и удалять с помощью метода remove. Инициализация с помощью метода init не поддерживается.

По сравнению с MutableHashTable, DenseHashTable обычно обеспечивает более быстрые операции insert, remove и lookup, но требует больше памяти в целом.

Для разрешения коллизий используется метод открытой адресации с квадратичным пробированием. Для этого необходимо указать два ключа из пространства ключей — empty_key и deleted_key, которые нельзя добавлять в таблицу.

В отличие от MutableHashTable, DenseHashTable не требует дополнительной памяти для временных тензоров, создаваемых во время операций сохранения и восстановления контрольных точек.

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

table = tf.lookup.experimental.DenseHashTable(
    key_dtype=tf.string,
    value_dtype=tf.int64,
    default_value=-1,
    empty_key='',
    deleted_key='$')
keys = tf.constant(['a', 'b', 'c'])
values = tf.constant([0, 1, 2], dtype=tf.int64)
table.insert(keys, values)
table.remove(tf.constant(['c']))
table.lookup(tf.constant(['a', 'b', 'c','d'])).numpy()
array([ 0,  1, -1, -1])
Аргументы
key_dtype тип тензоров ключей.
value_dtype тип тензоров значений.
default_value Значение, используемое, если ключ отсутствует в таблице.
empty_key Ключ, используемый для внутреннего обозначения пустых ячеек. Не должен использоваться в операциях insert, remove или lookup.
deleted_key Ключ, используемый для внутреннего обозначения удалённых ячеек. Не должен использоваться в операциях insert, remove или lookup и должен отличаться от empty_key.
initial_num_buckets начальное количество ячеек (необязательный параметр, по умолчанию 2^17=131072). Обратите внимание, что значение по умолчанию довольно велико (~1 МБ), поэтому при создании большого количества таблиц (что, вероятно, произойдёт, если experimental_is_anonymous имеет значение True) следует задать для initial_num_buckets меньшее значение, чтобы снизить потребление памяти.
name Имя операции (необязательно).
checkpoint Если True, содержимое таблицы сохраняется в контрольных точках и восстанавливается из них. Если значение shared_name пустое для таблицы с контрольными точками, таблица совместно использует имя узла таблицы.
experimental_is_anonymous Использовать ли для таблицы анонимный режим (по умолчанию False). В анонимном режиме доступ к ресурсу таблицы возможен только через дескриптор ресурса. Найти его по имени нельзя. Когда все дескрипторы, указывающие на этот ресурс, будут удалены, ресурс будет автоматически удалён.
Исключения
ValueError Если checkpoint имеет значение True и имя не указано.
Атрибуты
key_dtype Тип данных ключей таблицы.
name Имя таблицы.
resource_handle Возвращает дескриптор ресурса, связанный с этим ресурсом.
value_dtype Тип данных значений таблицы.

Методы

erase

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

erase(
    keys, name=None
)

Удаляет keys и связанные с ними значения из таблицы.

Если ключ отсутствует в таблице, он игнорируется без предупреждения.

Аргументы
keys Ключи для удаления. Может быть тензором любой формы. Тип должен совпадать с типом ключей таблицы.
name Имя операции (необязательно).
Возвращает
Созданную операцию.
Исключения
TypeError если keys не соответствуют типам данных таблицы.

export

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

export(
    name=None
)

Возвращает тензоры со всеми ключами и значениями таблицы.

Аргументы
name Имя операции (необязательно).
Возвращает
Пару тензоров: первый содержит все ключи, второй — все значения таблицы.

insert

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

insert(
    keys, values, name=None
)

Связывает keys с values.

Аргументы
keys Ключи для добавления. Может быть тензором любой формы. Тип должен совпадать с типом ключей таблицы.
values Значения, связываемые с ключами. Должны быть тензором той же формы, что и keys, и соответствовать типу значений таблицы.
name Имя операции (необязательно).
Возвращает
Созданную операцию.
Исключения
TypeError если keys или values не соответствует типам данных таблицы.

insert_or_assign

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

insert_or_assign(
    keys, values, name=None
)

Связывает keys с values.

Аргументы
keys Ключи для добавления. Может быть тензором любой формы. Тип должен совпадать с типом ключей таблицы.
values Значения, связываемые с ключами. Должны быть тензором той же формы, что и keys, и соответствовать типу значений таблицы.
name Имя операции (необязательно).
Возвращает
Созданную операцию.
Исключения
TypeError если keys или values не соответствует типам данных таблицы.

lookup

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

lookup(
    keys, name=None
)

Выполняет поиск keys в таблице и возвращает соответствующие значения.

Для ключей, отсутствующих в таблице, используется default_value.

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

remove

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

remove(
    keys, name=None
)

Удаляет keys и связанные с ними значения из таблицы.

Если ключ отсутствует в таблице, он игнорируется без предупреждения.

Аргументы
keys Ключи для удаления. Может быть тензором любой формы. Тип должен совпадать с типом ключей таблицы.
name Имя операции (необязательно).
Возвращает
Созданную операцию.
Исключения
TypeError если keys не соответствуют типам данных таблицы.

size

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

size(
    name=None
)

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

Аргументы
name Имя операции (необязательно).
Возвращает
Скалярный тензор, содержащий количество элементов в этой таблице.

__getitem__

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

__getitem__(
    keys
)

Выполняет поиск keys в таблице и возвращает соответствующие значения.

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/lookup/experimental/DenseHashTable

Spec-Zone.ru

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