Spec-Zone.ru › TensorFlow 2.9

tf.compat.v1.sparse_merge

Объединяет пакет идентификаторов функций и значений в единый SparseTensor. (устарело)

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

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

Дополнительные сведения см. в руководстве по миграции.

tf.compat.v1.sparse.merge

tf.compat.v1.sparse_merge(
    sp_ids, sp_values, vocab_size, name=None, already_sorted=False
)
Устаревшее: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена в будущей версии. Инструкции по обновлению: В настоящее время нет аналогичной операции.

Наиболее распространенный случай использования этой функции возникает, когда идентификаторы функций и их соответствующие значения хранятся в Example протоколах на диске. parse_example вернет пакет идентификаторов и пакет значений, и эта функция объединит их в один логический SparseTensor для использования в функциях, таких как sparse_tensor_dense_matmul, sparse_to_dense, и т. д.

Полученный SparseTensor этой функцией имеет следующие свойства:

  • indices эквивалентно sp_ids.indices с отброшенным последним измерением и заменой на sp_ids.values.
  • values просто sp_values.values.
  • Если sp_ids.dense_shape = [D0, D1, ..., Dn, K], тогда output.shape = [D0, D1, ..., Dn, vocab_size].

Например, рассмотрим следующие векторы признаков:

vector1 = [-3, 0, 0, 0, 0, 0]
vector2 = [ 0, 1, 0, 4, 1, 0]
vector3 = [ 5, 0, 0, 9, 0, 0]

Они могут храниться разреженно в следующих протоколах Примеры, храня только идентификаторы признаков (номер столбца, если векторы рассматриваются как матрица) ненулевых элементов и соответствующие значения:

examples = [Example(features={
                "ids": Feature(int64_list=Int64List(value=[0])),
                "values": Feature(float_list=FloatList(value=[-3]))}),
            Example(features={
                "ids": Feature(int64_list=Int64List(value=[1, 4, 3])),
                "values": Feature(float_list=FloatList(value=[1, 1, 4]))}),
            Example(features={
                "ids": Feature(int64_list=Int64List(value=[0, 3])),
                "values": Feature(float_list=FloatList(value=[5, 9]))})]

Результат вызова parse_example для этих примеров создаст словарь со входами "ids" и "values". Передача этих двух объектов в эту функцию вместе с vocab_size=6 создаст SparseTensor, который разреженно представляет все три экземпляра. А именно, свойство indices будет содержать координаты ненулевых элементов в матрице признаков (первое измерение — номер строки в матрице, т. е. индекс в пакете, а второе измерение — номер столбца, т. е. идентификатор признака); values будет содержать фактические значения. shape будет формой исходной матрицы, т. е. (3, 6). Для нашего примера выше выход будет равен:

SparseTensor(indices=[[0, 0], [1, 1], [1, 3], [1, 4], [2, 0], [2, 3]],
             values=[-3, 1, 4, 1, 5, 9],
             dense_shape=[3, 6])

Этот метод обобщается на более высокие измерения, просто предоставляя список как для sp_ids, так и для vocab_size. В этом случае у полученного SparseTensor есть следующие свойства:

  • indices эквивалентно sp_ids[0].indices с отброшенным последним измерением и конкатенацией с sp_ids[0].values, sp_ids[1].values, ....
  • values просто sp_values.values.
  • Если sp_ids.dense_shape = [D0, D1, ..., Dn, K], тогда output.shape = [D0, D1, ..., Dn] + vocab_size.
Аргументы
sp_ids Одиночный SparseTensor с values свойством типа int32 или int64 или список таких SparseTensor или список списков.
sp_values SparseTensor любого типа.
vocab_size Скалярный int64 тензор (или целое число Python) содержащий новый размер последнего измерения, all(0 <= sp_ids.values < vocab_size). Или список такого рода с all(0 <= sp_ids[i].values < vocab_size[i]) для всех i.
name Префикс имени для возвращаемых тензоров (необязательно)
already_sorted Логическое значение, указывающее, отсортированы ли значения каждого пакета в sp_values. В случае положительного ответа пропускается сортировка, по умолчанию False (необязательно).
Возвращаемое значение
SparseTensor компактно представляющий пакет идентификаторов и значений функций, удобный для передачи функциям, которые ожидают такой SparseTensor.
Исключения
TypeError Если sp_values не является SparseTensor. Или если sp_ids не является SparseTensor или списком таковых. Или если vocab_size не является Tensor или целым числом Python, и sp_ids является SparseTensor. Или если vocab_size не является или списком таковых, и sp_ids является списком.
ValueError Если sp_ids и vocab_size являются списками разной длины.

© 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/versions/r2.9/api_docs/python/tf/compat/v1/sparse_merge

Spec-Zone.ru

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