Se usó la API de Cloud Translation para traducir esta página.
Switch to English

tf.numpy_function

Versión TensorFlow 1 Ver fuente en GitHub

Envuelve una función de Python y la usa como una operación de TensorFlow.

Usado en los cuadernos

Usado en los tutoriales

Dada una función de Python, func envuelve esta función como una operación en una función de TensorFlow. func debe tomar matrices numpy como argumentos y devolver matrices numpy como salidas.

El siguiente ejemplo crea un gráfico de TensorFlow con np.sinh() como una operación en el gráfico:

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>

Comparación con tf.py_function : tf.py_function y tf.numpy_function son muy similares, excepto que tf.numpy_function toma matrices numpy, y no tf.Tensor s. Si desea que la función contenga tf.Tensors y que las operaciones de TensorFlow ejecutadas en la función sean diferenciables, use tf.py_function .

  • El cuerpo de la función (es decir, func ) no se serializará en un tf.SavedModel . Por lo tanto, no debe utilizar esta función si necesita serializar su modelo y restaurarlo en un entorno diferente.

  • La operación debe ejecutarse en el mismo espacio de direcciones que el programa Python que llama a tf.numpy_function() . Si está utilizando TensorFlow distribuido, debe ejecutar un tf.distribute.Server en el mismo proceso que el programa que llama a tf.numpy_function , debe anclar la operación creada a un dispositivo en ese servidor (por ejemplo, usar with tf.device(): )

  • Dado que la función toma matrices numpy, no puede tomar gradientes a través de una función numpy. Si necesita algo que sea diferenciable, considere usar tf.py_function.

  • Se supone que la función resultante tiene estado y nunca se optimizará.

func Una función de Python, que acepta objetos numpy.ndarray como argumentos y devuelve una lista de objetos numpy.ndarray (o un solo numpy.ndarray ). Esta función debe aceptar tantos argumentos como tensores haya en inp , y estos tipos de argumentos coincidirán con los objetos tf.Tensor correspondientes en inp . Los retornos numpy.ndarray s deben coincidir con el número y los tipos definidos Tout . Nota importante: No se garantiza que la entrada y salida numpy.ndarray s de func sean copias. En algunos casos, su memoria subyacente se compartirá con los tensores de TensorFlow correspondientes. En lugar modificación o almacenar func valores de entrada o retorno en estructuras de datos pitón sin explícita (np.) Copia puede tener consecuencias no deterministas.
inp Una lista de objetos tf.Tensor .
Tout Una lista o tupla de tipos de datos de tensorflow o un solo tipo de datos de tensorflow si solo hay uno, que indica qué func devuelve.
name (Opcional) Un nombre para la operación.

Único o lista de tf.Tensor que calcula la func .