Spec-Zone.ru › TensorFlow 2.4

tf.numpy_function

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

Оборачивает функцию Python и использует её как операцию TensorFlow.

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

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

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

tf.compat.v1.numpy_function

tf.numpy_function(
    func, inp, Tout, name=None
)

Принимая функцию Python func оберните эту функцию в операцию в функции TensorFlow. func должна принимать массивы NumPy в качестве аргументов и возвращать массивы NumPy в качестве результатов.

Следующий пример создаёт граф TensorFlow с операцией np.sinh() в графе:

def my_numpy_func(x):
  # x will be a numpy array with the contents of the input to the
  # tf.function
  return np.sinh(x)
@tf.function(input_signature=[tf.TensorSpec(None, tf.float32)])
def tf_function(input):
  y = tf.numpy_function(my_numpy_func, [input], tf.float32)
  return y * y
tf_function(tf.constant(1.))
<tf.Tensor: shape=(), dtype=float32, numpy=1.3810978>

Сравнение с tf.py_function: tf.py_function и tf.numpy_function очень похожи, за исключением того, что tf.numpy_function принимает массивы NumPy, а не tf.Tensorы. Если вы хотите, чтобы функция содержала tf.Tensors, и любые операции TensorFlow, выполняемые в функции, должны быть дифференцируемыми, используйте tf.py_function.

Примечание: У операции tf.numpy_function есть следующие известные ограничения:
  • Тело функции (т.е. func) не будет сериализовано в tf.SavedModel. Поэтому не следует использовать эту функцию, если вам нужно сериализовать вашу модель и восстановить её в другой среде.

  • Операция должна выполняться в том же адресном пространстве, что и программа Python, вызывающая tf.numpy_function(). Если вы используете распределённый TensorFlow, вы должны запустить tf.distribute.Server в том же процессе, что и программа, вызывающая tf.numpy_function, вы должны привязать созданную операцию к устройству в этом сервере (например, используя with tf.device():).

  • Поскольку функция принимает массивы NumPy, вы не можете взять градиенты через numpy_function. Если вам нужна дифференцируемая функция, рассмотрите возможность использования tf.py_function.

  • Предполагается, что полученная функция является состоятельной и никогда не будет оптимизироваться.

Аргументы
func Функция Python, которая принимает объекты numpy.ndarray в качестве аргументов и возвращает список объектов numpy.ndarray (или один объект numpy.ndarray). Эта функция должна принимать столько аргументов, сколько тензоров в inp, и типы этих аргументов будут соответствовать соответствующим объектам tf.Tensor в inp. Возвращаемые numpy.ndarray должны соответствовать числу и типам, определённым Tout. Важное примечание: входные и выходные numpy.ndarray операции func не гарантируются как копии. В некоторых случаях их основополагающая память будет совмещена с соответствующими тензорами TensorFlow. Модификация "на месте" или хранение func входных или возвращаемых значений в структурах данных Python без явного (np.)copy может иметь непредсказуемые последствия.
inp Список объектов tf.Tensor.
Tout Список или кортеж типов данных TensorFlow, или один тип данных TensorFlow, если их только один, указывающий, что возвращает func.
name (Необязательно) Имя операции.
Возвращаемое значение
Один или список tf.Tensor, который вычисляет func .

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/numpy_function

Spec-Zone.ru

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