Данные можно добавлять с помощью метода insert и удалять с помощью метода remove. Инициализация с помощью метода init не поддерживается.
По сравнению с MutableHashTable, DenseHashTable обычно обеспечивает более быстрые операции insert, remove и lookup, но требует больше памяти в целом.
Для разрешения коллизий используется метод открытой адресации с квадратичным пробированием. Для этого необходимо указать два ключа из пространства ключей — empty_key и deleted_key, которые нельзя добавлять в таблицу.
В отличие от MutableHashTable, DenseHashTable не требует дополнительной памяти для временных тензоров, создаваемых во время операций сохранения и восстановления контрольных точек.
Значение, используемое, если ключ отсутствует в таблице.
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
Возвращает дескриптор ресурса, связанный с этим ресурсом.