Sobrecarga del operador TensorFlow


¿Cuál es la diferencia entre

   tf.add(x, y)

Y

   x + y

En TensorFlow? ¿Qué sería diferente en tu grafo de cómputo cuando construyes tu grafo con + en lugar de tf.add()?

Más generalmente, son + u otras operaciones sobrecargadas para tensores?

Author: mrry, 2016-01-30

1 answers

Si al menos uno de x o y es un tf.Tensor objeto, las expresiones tf.add(x, y) y x + y son equivalentes. La razón principal por la que podría usar tf.add() es para especificar un name argumento de palabra clave para el op creado, que no es posible con la versión de operador sobrecargada.

Tenga en cuenta que si ni x ni y es un tf.Tensor-por ejemplo, si son matrices NumPy-entonces x + y no creará un TensorFlow op. tf.add() siempre crea un TensorFlow op y convierte su argumentos a los objetos tf.Tensor. Por lo tanto, si está escribiendo una función de biblioteca que puede aceptar tanto tensores como matrices NumPy, es posible que prefiera usar tf.add().

Los siguientes operadores están sobrecargados en la API de Python de TensorFlow:

  • __neg__ (unario -)
  • __abs__ (abs())
  • __invert__ (unario ~)
  • __add__ (binario +)
  • __sub__ (binario -)
  • __mul__ (elemento binario *)
  • __div__ (binario {[27] } en Python 2)
  • __floordiv__ (binario // en Python 3)
  • __truediv__ (binario / en Python 3)
  • __mod__ (binario %)
  • __pow__ (binario **)
  • __and__ (binario &)
  • __or__ (binario |)
  • __xor__ (binario ^)
  • __lt__ (binario <)
  • __le__ (binario <=)
  • __gt__ (binario >)
  • __ge__ (binario >=)

Tenga en cuenta, __eq__ (binario == ) está no sobrecargado. x == y simplemente devolverá un booleano Python si x y y se refieren al mismo tensor. Necesitas usar tf.equal() explícitamente para comprobar la igualdad en cuanto a elementos. Lo mismo va para no igual, __ne__ (binario !=).

 54
Author: mrry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-15 12:09:51