Spec-Zone.ru › TensorFlow

tf.experimental.DynamicRaggedShape

Форма тензора с неоднородной или плотной структурой.

Наследуется от: BatchableExtensionType, ExtensionType

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

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

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

tf.compat.v1.experimental.DynamicRaggedShape

tf.experimental.DynamicRaggedShape(
    row_partitions: Sequence[tf.experimental.RowPartition],
    inner_shape: tf.types.experimental.TensorLike,
    dtype: Optional[tf.dtypes.DType] = None,
    validate: bool = False,
    static_inner_shape: ... = None
)

Используется в блокнотах

Используется в руководстве
  • Тензоры с неоднородной структурой

Формы тензоров с неоднородной структурой кодируются с помощью двух полей:

  • inner_shape: целочисленный вектор, задающий форму плотного тензора.
  • row_partitions: список объектов RowPartition, описывающих, как следует разбить эту плоскую форму для добавления осей с неоднородной структурой.

Если DynamicRaggedShape задаёт форму RaggedTensor rt, то:

  1. row_partitions = rt._nested_row_partitions (и, следовательно, len(row_partitions) > 0)
  2. inner_shape — это форма rt.flat_values

Если DynamicRaggedShape задаёт форму плотного тензора t, то:

  1. row_partitions = []
  2. inner_shape — это форма t.

Примеры:

В следующей таблице приведено несколько примеров (где RP(lengths) — это сокращение от RowPartition.from_lengths(lengths)):

Разделы строк Внутренняя форма Пример тензора
[] [2, 3] [[1, 2, 3], [4, 5, 6]]
[RP([2, 0, 3])] [5] [[1, 2], [], [3, 4, 5]]
[RP([2, 1])] [3, 2] [[[1, 2], [3, 4]], [[5, 6]]]
[RP([2, 1]), RP([2, 1, 2])] [5] [[[1, 2], [3]], [[4, 5]]]
Аргументы
row_partitions разделы строк формы.
inner_shape если len(row_partitions) > 0, форма flat_values. В противном случае — форма тензора.
dtype tf.int64, tf.int32 или None, задающий предпочтительный тип данных.
validate если значение true, для формы выполняется динамическая проверка.
static_inner_shape если len(row_partitions) > 0, статическая форма flat_values. В противном случае — статическая форма тензора. Должна преобразовываться в TensorShape.
Атрибуты
dtype Тип данных формы — tf.int32 или tf.int64.
inner_rank Ранг inner_shape.
inner_shape Размеры внутренних измерений этой формы.
num_row_partitions Количество разделов строк формы.
rank Количество измерений в этой форме или None, если оно неизвестно.
row_partitions Разделы строк формы.

Дочерние классы

class Spec

Методы

from_lengths

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

@classmethod
from_lengths(
    lengths: Sequence[Union[Sequence[int], int]],
    num_row_partitions=None,
    dtype=tf.dtypes.int64
)

Создаёт форму с заданными длинами и количеством разделов строк.

Длина может быть неотрицательным целым числом или списком неотрицательных целых чисел.

Если num_row_partitions равно None, используется минимальное значение num_row_partitions.

Например, [2, (3, 2)] — это форма [[0, 0, 0], [0, 0]], а [2, 2] — форма [[0, 0], [0, 0]]

При этом выбирается минимальное необходимое количество разделов строк (включая ноль).

В следующей таблице приведено несколько примеров (где RP(lengths) — это сокращение от RowPartition.from_lengths(lengths)):

Например:

from_lengths разделы строк внутренняя форма
[] [] []
[2, (3, 2)] [RP([3, 2])] [5]
[2, 2] [] [2, 2]
[2, (3, 2), 7] [RP([3, 2])] [5, 7]
[2, (2, 2), 3] [RP([2, 2])] [4, 3]
[2, 2, 3] [] [2, 2, 3]
[2, (2, 1), (2, 0, 3)] [RP(2, 1), RP([2, 0, 3])] [5]

Если требуется, чтобы разделы строк заканчивались равномерными разделами строк, можно задать num_row_partitions.

Например, ниже URP(3, 12) — это RowPartition.from_uniform_row_length(3, 12)

from_lengths num_row_partitions разделы строк внутренняя форма
[2, (3, 2), 2] 2 [RP([3, 2]), URP(2, 10)] [10]
[2, 2] 1 [URP(2, 4)] [4]
[2, 2, 3] 0 [] [2, 2, 3]
[2, 2, 3] 1 [URP(2, 4)] [4, 3]
[2, 2, 3] 2 [URP(2, 4), URP(3, 12)] [12]

Представление форм из init():

from_lengths Пример тензора
[2, 3] [[1, 2, 3], [4, 5, 6]]
[3, (2, 0, 3)] [[1, 2], [], [3, 4, 5]]
[2, (2, 1), 2] [[[1, 2], [3, 4]], [[5, 6]]]
[2, (2, 1), (2, 1, 2)] [[[1, 2], [3]], [[4, 5]]]
Аргументы
lengths длины подсписков вдоль каждой оси.
num_row_partitions количество разделов строк результата или None, указывающее минимальное количество разделов строк.
dtype тип данных формы (tf.int32 или tf.int64).
Возвращает
новый объект DynamicRaggedShape

from_row_partitions

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

@classmethod
from_row_partitions(
    row_partitions, dtype=None
)

Создаёт форму из разделов строк.

Аргументы
row_partitions непустой список объектов RowPartition.
dtype используемый тип данных или None, чтобы использовать тип данных разделов строк.
Возвращает
DynamicRaggedShape с inner_rank==1.

from_tensor

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

@classmethod
from_tensor(
    t, dtype=None
)

Создаёт форму с неоднородной структурой для потенциально неоднородного тензора.

is_uniform

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

is_uniform(
    axis
)

Возвращает true, если указанное измерение является равномерным.

static_lengths

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

static_lengths(
    ragged_lengths=True
)

Возвращает список статически известных длин осей.

Здесь представлены известные значения. Для каждого раздела строк указывается либо длина равномерной строки (если она известна статически), либо список длин строк, либо None, если значение неизвестно статически. Для внутренней формы, если ранг известен, сообщается размер каждого известного измерения, а для неизвестных указывается None. Если ранг внутренней формы неизвестен, возвращаемый список заканчивается многоточием.

Аргументы
ragged_lengths Если значение false, для всех измерений с неоднородной структурой возвращается None.
Возвращает
Sequence[Union[Sequence[int],int, None]] с длинами и, возможно, многоточием в конце.

with_dtype

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

with_dtype(
    dtype
)

Изменяет тип данных формы.

__eq__

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

__eq__(
    other
)

Возвращает self==value.

__getitem__

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

__getitem__(
    index
)

Возвращает измерение или срез формы.

Формы с неоднородной структурой могут содержать измерения, зависящие от других измерений. Поэтому при запросе измерения с неоднородной структурой эта функция возвращает ValueError. По той же причине операция завершается ошибкой, если выбран срез, содержащий измерение с неоднородной структурой, но не включающий нулевое измерение.

Любой срез, начинающийся не с нуля, возвращает форму, в которой num_row_partitions == 0.

Аргументы
index индекс: может быть целым числом или срезом.
Вызывает исключение
IndexError если индекс выходит за пределы диапазона.
ValueError если ранг неизвестен или запрошен ранг с неоднородной структурой некорректным образом.

__ne__

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

__ne__(
    other
)

Возвращает self!=value.

© 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/experimental/DynamicRaggedShape

Spec-Zone.ru

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