Spec-Zone.ru › TensorFlow 2.9

tf.TensorShape

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

Представляет форму Tensor.

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

Псевдонимы

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

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.TensorShape

tf.TensorShape(
    dims
)

Объект TensorShape представляет собой возможно частичное описание формы Tensor. Он может быть одним из следующих:

  • Полностью известная форма: имеет известное количество измерений и известный размер для каждого измерения. Пример: TensorShape([16, 256])
  • Частично известная форма: имеет известное количество измерений и неизвестный размер для одного или нескольких измерений. Пример: TensorShape([None, 256])
  • Неизвестная форма: имеет неизвестное количество измерений и неизвестный размер во всех измерениях. Пример: TensorShape(None)

Если тензор получен операцией типа "Foo", его форму можно вывести, если существует зарегистрированная функция вывода формы для "Foo". См. Функции вывода формы для получения подробной информации о функциях вывода формы и о том, как их регистрировать. В качестве альтернативы, вы можете явно установить форму, используя tf.Tensor.set_shape.

Аргументы
dims Список измерений или None, если форма не указана.
Исключения
TypeError Если dims нельзя преобразовать в список измерений.
Атрибуты
dims Устарело. Возвращает список измерений для этой формы.

Предлагается использовать TensorShape.as_list вместо этого.

ndims Устаревший доступ к rank.
rank Возвращает ранг этой формы или None, если он не указан.

Методы

as_list

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

as_list()

Возвращает список целых чисел или None для каждого измерения.

Возвращаемое значение
Список целых чисел или None для каждого измерения.
Исключения
ValueError Если self представляет собой неизвестную форму с неизвестным рангом.

as_proto

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

as_proto()

Возвращает эту форму в виде TensorShapeProto.

assert_has_rank

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

assert_has_rank(
    rank
)

Вызывает исключение, если self несовместима с заданным rank.

Аргументы
rank Целое число.
Исключения
ValueError Если self не представляет форму с заданным rank .

assert_is_compatible_with

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

assert_is_compatible_with(
    other
)

Вызывает исключение, если self и other не представляют одинаковую форму.

Этот метод может использоваться для проверки, существует ли форма, которую представляют как self, так и other.

Аргументы
other Другая TensorShape.
Исключения
ValueError Если self и other не представляют одинаковую форму.

assert_is_fully_defined

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

assert_is_fully_defined()

Вызывает исключение, если self не полностью определена во всех измерениях.

Исключения
ValueError Если self не имеет известного значения для каждого измерения.

assert_same_rank

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

assert_same_rank(
    other
)

Вызывает исключение, если self и other не имеют совместимых рангов.

Аргументы
other Другая TensorShape.
Исключения
ValueError Если self и other не представляют формы с одинаковым рангом.

concatenate

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

concatenate(
    other
)

Возвращает конкатенацию измерений в self и other.

Примечание: Если либо self или other полностью неизвестны, конкатенация отбросит информацию о другой форме. В будущем мы можем поддерживать конкатенацию, которая сохраняет эту информацию для использования с операциями среза.
Аргументы
other Другая TensorShape.
Возвращаемое значение
TensorShape , измерения которого являются конкатенацией измерений в self и other.

is_compatible_with

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

is_compatible_with(
    other
)

Возвращает True, если self совместима с other.

Две формы, возможно, частично определённые, совместимы, если существует полностью определённая форма, которую обе формы могут представлять. Таким образом, совместимость позволяет коду вывода формы рассуждать о частично определённых формах. Например:

  • TensorShape(None) совместима со всеми формами.

  • TensorShape([None, None]) совместима со всеми двумерными формами, такими как TensorShape([32, 784]), а также TensorShape(None). Она не совместима, например, с TensorShape([None]) или TensorShape([None, None, None]).

  • TensorShape([32, None]) совместима со всеми двумерными формами с размером 32 в 0-м измерении, а также с TensorShape([None, None]) и TensorShape(None). Она не совместима, например, с TensorShape([32]), TensorShape([32, None, 1]) или TensorShape([64, None]).

  • TensorShape([32, 784]) совместима с собой, а также с TensorShape([32, None]), TensorShape([None, 784]), TensorShape([None, None]) и TensorShape(None). Она не совместима, например, с TensorShape([32, 1, 784]) или TensorShape([None]).

Отношение совместимости является рефлексивным и симметричным, но не транзитивным. Например, TensorShape([32, 784]) совместима с TensorShape(None), а TensorShape(None) совместима с TensorShape([4, 4]), но TensorShape([32, 784]) не совместима с TensorShape([4, 4]).

Аргументы
other Другая TensorShape.
Возвращаемое значение
True, если self совместима с other .

is_fully_defined

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

is_fully_defined()

Возвращает True, если self полностью определена во всех измерениях.

is_subtype_of

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

is_subtype_of(
    other: tf.types.experimental.TraceType
) -> bool

Возвращает True, если self является подтипом other.

Форма A является подтипом формы B, если форма B может успешно её представить:

  • A TensorShape любого ранга является подтипом TensorShape(None).

  • TensorShapes с одинаковыми рангами являются ковариантными, т.е. TensorShape([A1, A2, ..]) является подтипом TensorShape([B1, B2, ..]) тогда и только тогда, когда An является подтипом Bn.

    An является подтипом Bn тогда и только тогда, когда An == Bn или Bn равно None.

  • TensorShapes с разными заданными рангами не имеют отношения подтипов.

Отношение подтипов рефлексивно и транзитивно, но не симметрично.

Примеры:

  • TensorShape([32, 784]) является подтипом TensorShape(None), и TensorShape([4, 4]) также является подтипом TensorShape(None) но TensorShape([32, 784]) и TensorShape([4, 4]) не являются подтипами друг друга.

  • Все двумерные формы являются подтипами TensorShape([None, None]), например TensorShape([32, 784]). Нет отношения подтипов с, например, TensorShape([None]) или TensorShape([None, None, None]).

  • TensorShape([32, None]) также является подтипом TensorShape([None, None]) и TensorShape(None). Он не является подтипом, например, TensorShape([32]), TensorShape([32, None, 1]), TensorShape([64, None]) или TensorShape([None, 32]).

  • TensorShape([32, 784]) является подтипом самого себя, а также TensorShape([32, None]), TensorShape([None, 784]), TensorShape([None, None]) и TensorShape(None). У него нет отношения подтипов, например, с TensorShape([32, 1, 784]) или TensorShape([None]).

Аргументы
other Другая TensorShape.
Возвращаемое значение
True, если self является подтипом other

merge_with

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

merge_with(
    other
)

Возвращает TensorShape, объединяющую информацию из self и other.

Размеры в self и other объединяются по элементам в соответствии с правилами ниже:

Dimension(n).merge_with(Dimension(None)) == Dimension(n)
Dimension(None).merge_with(Dimension(n)) == Dimension(n)
Dimension(None).merge_with(Dimension(None)) == Dimension(None)
# raises ValueError for n != m
Dimension(n).merge_with(Dimension(m))

ts = tf.TensorShape([1,2]) ot1 = tf.TensorShape([1,2]) ts.merge_with(ot).as_list() [1,2]

ot2 = tf.TensorShape([1,None]) ts.merge_with(ot2).as_list() [1,2]

ot3 = tf.TensorShape([None, None]) ot3.merge_with(ot2).as_list() [1, None]

Аргументы
other Другая TensorShape.
Возвращаемое значение
A TensorShape содержащую объединённую информацию из self и other
Исключения
ValueError Если self и other не совместимы.

most_specific_common_supertype

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

most_specific_common_supertype(
    others: Sequence[tf.types.experimental.TraceType]
) -> Optional['TensorShape']

Возвращает самый общий подтип TensorShape self и others.

  • TensorShape([None, 1]) — самый общий TensorShape подтип, охватывающий как TensorShape([2, 1]), так и TensorShape([5, 1]). Обратите внимание, что TensorShape(None) также является супертипом, но не «наиболее общим».

  • TensorShape([1, 2, 3]) — самый общий TensorShape подтип, охватывающий как TensorShape([1, 2, 3]), так и TensorShape([1, 2, 3]). Существуют и другие менее общие TensorShapes, которые являются супертипами вышеупомянутых TensorShapes, например, TensorShape([1, 2, None]), TensorShape(None).

    • TensorShape([None, None]) — самый общий TensorShape подтип, охватывающий как TensorShape([2, None]), так и TensorShape([None, 3]). Как всегда, TensorShape(None) также является супертипом, но не самым общим.

    • TensorShape(None) — единственный TensorShape подтип, охватывающий как TensorShape([1, 2, 3]), так и TensorShape([1, 2]). В общем случае, у любых двух форм с разными рангами будет только TensorShape(None) в качестве общего супертипа.

    • TensorShape(None) — единственный TensorShape подтип, охватывающий как TensorShape([1, 2, 3]), так и TensorShape(None). В общем случае, общий супертип любой формы с TensorShape(None) будет TensorShape(None).

Аргументы
others Последовательность TensorShape
Возвращаемое значение
TensorShape, являющийся наиболее общим супертипом формы self и others. None, если он не существует.

most_specific_compatible_shape

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

most_specific_compatible_shape(
    other
)

Возвращает наиболее специфичную TensorShape, совместимую с self и other.

  • TensorShape([None, 1]) — наиболее специфичная TensorShape, совместимая как с TensorShape([2, 1]), так и с TensorShape([5, 1]). Обратите внимание, что TensorShape(None) также совместима с вышеупомянутыми TensorShapes.

  • TensorShape([1, 2, 3]) — наиболее специфичная TensorShape, совместимая как с TensorShape([1, 2, 3]), так и с TensorShape([1, 2, 3]). Есть более общие TensorShapes, совместимые с вышеупомянутыми TensorShapes, например, TensorShape([1, 2, None]), TensorShape(None).

Аргументы
other Другая TensorShape.
Возвращаемое значение
TensorShape, являющаяся наиболее специфичной совместимой формой self и other

num_elements

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

num_elements()

Возвращает общее количество элементов или None для неполных форм.

with_rank

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

with_rank(
    rank
)

Возвращает форму на основе self с заданным рангом.

Этот метод преобразует полностью неизвестную форму в форму с известным рангом.

Аргументы
rank Целое число.
Возвращаемое значение
Форма, которая, по крайней мере, так же специфична, как self с заданным рангом.
Исключения
ValueError Если self не представляет форму с заданным rank.

with_rank_at_least

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

with_rank_at_least(
    rank
)

Возвращает форму на основе self с, по крайней мере, заданным рангом.

Аргументы
rank Целое число.
Возвращаемое значение
Форма, которая, по крайней мере, так же специфична, как self с, по крайней мере, заданным рангом.
Исключения
ValueError Если self не представляет форму с, по крайней мере, заданным rank.

with_rank_at_most

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

with_rank_at_most(
    rank
)

Возвращает форму на основе self с, не более чем, заданным рангом.

Аргументы
rank Целое число.
Возвращаемое значение
Форма, которая, по крайней мере, так же специфична, как self с, не более чем, заданным рангом.
Исключения
ValueError Если self не представляет форму с, не более чем, заданным rank.

__add__

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

__add__(
    other
)

__bool__

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

__bool__()

Возвращает True, если эта форма содержит ненулевую информацию.

__concat__

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

__concat__(
    other
)

__eq__

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

__eq__(
    other
)

Возвращает True, если self эквивалентно other.

Сначала пытается преобразовать other в TensorShape. При неудачном преобразовании генерируется исключение TypeError. В противном случае сравниваются каждый элемент в измерениях TensorShape.

  • Для двух полностью известных форм возвращает True, если каждый элемент равен.
>>> t_a = tf.TensorShape([1,2])
>>> a = [1, 2]
>>> t_b = tf.TensorShape([1,2])
>>> t_c = tf.TensorShape([1,2,3])
>>> t_a.__eq__(a)
True
>>> t_a.__eq__(t_b)
True
>>> t_a.__eq__(t_c)
False
  • Для двух частично известных форм возвращает True, если каждый элемент равен.
>>> p_a = tf.TensorShape([1,None])
>>> p_b = tf.TensorShape([1,None])
>>> p_c = tf.TensorShape([2,None])
>>> p_a.__eq__(p_b)
True
>>> t_a.__eq__(p_a)
False
>>> p_a.__eq__(p_c)
False
  • Для двух неизвестных форм возвращает True.
>>> unk_a = tf.TensorShape(None)
>>> unk_b = tf.TensorShape(None)
>>> unk_a.__eq__(unk_b)
True
>>> unk_a.__eq__(t_a)
False
Аргументы
other TensorShape или тип, который может быть преобразован в TensorShape.
Возвращаемое значение
True, если все размеры равны.
Исключения
TypeError, если other нельзя преобразовать в TensorShape.

__getitem__

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

__getitem__(
    key
)

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

Аргументы
key Если key является целым числом, возвращает измерение в этом индексе; иначе, если key — срез, возвращает TensorShape, чьи измерения выбираются срезом из self.
Возвращаемое значение
Целое число, если key — целое число, или TensorShape, если key — срез.
Исключения
ValueError Если key — срез, и self полностью неизвестен, а шаг задан.

__iter__

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

__iter__()

Возвращает self.dims, если ранг известен, иначе генерирует ValueError.

__len__

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

__len__()

Возвращает ранг этой формы или генерирует ValueError, если он не определен.

__nonzero__

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

__nonzero__()

Возвращает True, если эта форма содержит ненулевую информацию.

__radd__

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

__radd__(
    other
)

© 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/TensorShape

Spec-Zone.ru

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