¿Cómo se llama TensorFlow a los tensores?


Me pregunto si este es el entendimiento correcto: {[11]]}

Todos los tensores se derivan de alguna operación, y a las operaciones se les da un nombre en el constructor, o se les da el nombre predeterminado para un tipo particular de operación. Si el nombre no es único, TensorFlow lo maneja automáticamente anexando "_1", "_2", etc. Una operación con n salidas de tensor nombre estos tensores "op_name:0", "op_name:1", ..., "op_name:n-1".

Parece surgir un problema: si x es un tf.Variable, entonces x.name da "variable_name:0". Esto es confuso: ¿a qué se refiere "variable_name"?

 24
Author: nbro, 2016-03-22

1 answers

Sus observaciones sobre Tensor naming son absolutamente correctas: el nombre de un Tensor es la concatenación de

  1. el nombre de la operación que lo produjo,
  2. dos puntos (:), y
  3. el índice de ese tensor en las salidas de la operación que lo produjo.

Por lo tanto, el tensor llamado "foo:2" es la salida del op llamado "foo" en la posición 2 (con índices a partir de cero).

El nomenclatura de tf.Variable objetos es un poco extraño. Cada tf.Variable contiene un objeto tensor mutable que contiene el estado de la variable (y algunos otros tensores). Un "Variable" op (que tiene el nombre "variable_name" en su ejemplo) "produce" este tensor mutable cada vez que se ejecuta como su 0a salida, por lo que el nombre del tensor mutable es "variable_name:0".

Dado que a tf.Variable es en su mayoría indistinguible de a tf.Tensor - ya que se puede usar en los mismos lugares-tomamos la decisión de hacer que los nombres de variables se parezcan a los nombres de tensores, por lo que la propiedad Variable.name devuelve el nombre del tensor mutable. (Esto contrasta con tf.QueueBase y tf.ReaderBase objetos, que son no utilizables directamente como tensores (en su lugar, tienes que llamar a los métodos en ellos para crear ops que operan en su estado), por lo que estos no tienen un nombre similar a un tensor.)

 37
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-01-03 20:11:13