Spec-Zone.ru › TensorFlow

tf.squeeze

Удаляет из формы тензора измерения размера 1.

tf.squeeze(
    input, axis=None, name=None
)

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

Используется в руководстве Используется в учебных материалах
  • Логистическая регрессия для бинарной классификации с помощью Core API
  • Многослойные перцептроны для распознавания цифр с помощью Core API
  • Краткое руководство по TensorFlow Core API
  • Строки Unicode
  • Обучаемое сжатие данных
  • Создание музыки с помощью RNN
  • Простое распознавание аудио: распознавание ключевых слов
  • Знакомство с автоэнкодерами
  • Перенос обучения с помощью YAMNet для классификации окружающих звуков

Для заданного тензора input эта операция возвращает тензор того же типа, в котором удалены все измерения размера 1. Если необходимо удалить не все измерения размера 1, можно удалить определённые измерения размера 1, указав axis.

Например:

# 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
tf.shape(tf.squeeze(t))  # [2, 3]

Или, чтобы удалить определённые измерения размера 1:

# 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
tf.shape(tf.squeeze(t, [2, 4]))  # [1, 2, 3, 1]

В отличие от более старого оператора tf.compat.v1.squeeze, этот оператор не принимает устаревший аргумент squeeze_dims.

Примечание: если input — это tf.RaggedTensor, то эта операция выполняется за O(N), где N — количество элементов в сжимаемых измерениях.
Примечание: Если операция squeeze применяется к измерениям с неизвестными размерами, возвращаемый тензор будет иметь неизвестную форму. Часто это происходит, когда первое измерение (пакета) имеет размер None: tf.squeeze возвращает форму <unknown>, что может оказаться неожиданным. Укажите аргумент axis=, чтобы получить ожидаемый результат, как показано в следующем примере:
@tf.function
def func(x):
  print('x.shape:', x.shape)
  known_axes = [i for i, size in enumerate(x.shape) if size == 1]
  y = tf.squeeze(x, axis=known_axes)
  print('shape of tf.squeeze(x, axis=known_axes):', y.shape)
  y = tf.squeeze(x)
  print('shape of tf.squeeze(x):', y.shape)
  return 0

_ = func.get_concrete_function(tf.TensorSpec([None, 1, 2], dtype=tf.int32))
# Output is.
# x.shape: (None, 1, 2)
# shape of tf.squeeze(x, axis=known_axes): (None, 2)
# shape of tf.squeeze(x): <unknown>
Аргументы
input Tensor. input для сжатия.
axis Необязательный список ints. По умолчанию — []. Если указан, сжимаются только перечисленные измерения. Индекс измерения начинается с 0. Попытка сжать измерение, отличное от 1, приводит к ошибке. Должен находиться в диапазоне [-rank(input), rank(input)). Его необходимо указать, если input — это RaggedTensor.
name Имя операции (необязательно).
Возвращает
Tensor. Имеет тот же тип, что и input. Содержит те же данные, что и input, но с одним или несколькими удалёнными измерениями размера 1.
Вызывает исключение
ValueError Входные данные невозможно преобразовать в тензор или указанную ось нельзя сжать.

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

Spec-Zone.ru

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