Spec-Zone.ru › TensorFlow 2.3

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.3/api_docs/python/tf/numpy_function

Spec-Zone.ru

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