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

tf.compat.v1.Session

Ver código fuente en GitHub

Una clase para ejecutar operaciones TensorFlow.

Se utiliza en los cuadernos

Se utiliza en los tutoriales

Una Session objeto encapsula el entorno en el que Operation se ejecutan objetos, y Tensor se evalúan los objetos. Por ejemplo:

 tf.compat.v1.disable_eager_execution() # need to disable eager in TF2.x
# Build a graph.
a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b

# Launch the graph in a session.
sess = tf.compat.v1.Session()

# Evaluate the tensor `c`.
print(sess.run(c)) # prints 30.0
 

Una sesión puede ser propietaria de los recursos, tales como tf.Variable , tf.queue.QueueBase y tf.compat.v1.ReaderBase . Es importante liberar estos recursos cuando ya no son necesarios. Para ello, ya sea invocar la tf.Session.close método en la sesión, o utilizar la sesión como un gestor de contexto. Los dos ejemplos siguientes son equivalentes:

 # Using the `close()` method.
sess = tf.compat.v1.Session()
sess.run(...)
sess.close()

# Using the context manager.
with tf.compat.v1.Session() as sess:
  sess.run(...)
 

El ConfigProto búfer de protocolo expone varias opciones de configuración para una sesión. Por ejemplo, para crear una sesión que utiliza restricciones blandas para la colocación del dispositivo, y registrar las decisiones de colocación resultantes, crear una sesión de la siguiente manera:

 # Launch the graph in a session that allows soft device placement and
# logs the placement decisions.
sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(
    allow_soft_placement=True,
    log_device_placement=True))
 

target (Opcional.) El motor de ejecución de conectarse. El valor predeterminado es el uso de un motor de proceso en el. Ver TensorFlow distribuida para más ejemplos.
graph (Opcional.) El Graph que se lanzará (descrito anteriormente).
config (Opcional.) A ConfigProto búfer de protocolo con opciones de configuración de la sesión.

graph El gráfico que se puso en marcha en esta sesión.
graph_def Una versión serializable de la gráfica TensorFlow subyacente.
sess_str El proceso TensorFlow al que se conectará esta sesión.

Métodos

as_default

Ver fuente

Devuelve un gestor de contexto que hace que este objeto la sesión predeterminada.

Se utiliza con el with la palabra clave para especificar que las llamadas a tf.Operation.run o tf.Tensor.eval deben ser ejecutados en esta sesión.

 c = tf.constant(..)
sess = tf.compat.v1.Session()

with sess.as_default():
  assert tf.compat.v1.get_default_session() is sess
  print(c.eval())
 

Para obtener la sesión predeterminada actual, utilice tf.compat.v1.get_default_session .

 c = tf.constant(...)
sess = tf.compat.v1.Session()
with sess.as_default():
  print(c.eval())
# ...
with sess.as_default():
  print(c.eval())

sess.close()
 

Alternativamente, se puede utilizar with tf.compat.v1.Session(): para crear una sesión que se cierra automáticamente al salir del contexto, incluso cuando se produce una excepción no capturada.

Devoluciones
Un gestor de contexto usando esta sesión como la sesión predeterminada.

close

Ver fuente

Cierra esta sesión.

Al llamar a este método libera todos los recursos asociados a la sesión.

aumentos
tf.errors.OpError O una de sus subclases si se produce un error al cerrar la sesión TensorFlow.

list_devices

Ver fuente

Muestra una lista de dispositivos disponibles en esta sesión.

 devices = sess.list_devices()
for d in devices:
  print(d.name)
 

Dónde:

Cada elemento de la lista tiene las siguientes propiedades

  • name : Una cadena con el nombre completo del dispositivo. por ejemplo: /job:worker/replica:0/task:3/device:CPU:0
  • device_type : El tipo de dispositivo (por ejemplo, CPU , GPU , TPU ).
  • memory_limit : La cantidad máxima de memoria disponible en el dispositivo. Nota: en función del dispositivo, es posible que la memoria utilizable podría ser sustancialmente menor.

aumentos
tf.errors.OpError Si se encuentra un error (por ejemplo, la sesión está en un estado no válido, o si se producen errores de red).

Devoluciones
Una lista de dispositivos en la sesión.

make_callable

Ver fuente

Devuelve un exigibles Python que dirige un paso en particular.

El exigible devuelto será tomar len(feed_list) argumentos cuyos tipos deben ser valores de alimentación compatibles para los elementos respectivos de feed_list . Por ejemplo, si el elemento i de feed_list es un tf.Tensor , el i ésimo argumento al regresar exigible debe ser un ndarray numpy (o algo convertible a un ndarray) con el tipo y la forma elemento coincidente. Ver tf.Session.run para los detalles de los tipos principales de alimentación y de valores permisibles.

El exigible devuelto tendrá el mismo tipo de retorno como tf.Session.run(fetches, ...) . Por ejemplo, si fetches es un tf.Tensor , la exigible devolverá un ndarray numpy; Si fetches es una tf.Operation , volverá None .

args
fetches Un valor o lista de valores para ir a buscar. Ver tf.Session.run para los detalles de los tipos fetch permisibles.
feed_list (Opcional.) Una lista de feed_dict llaves. Ver tf.Session.run para los detalles de los tipos principales de alimentación permisibles.
accept_options (Opcional.) Si True , el vuelto Callable será capaz de aceptar tf.compat.v1.RunOptions y tf.compat.v1.RunMetadata como argumentos de palabra clave opcionales options y run_metadata , respectivamente, con la misma sintaxis y semántica que tf.Session.run , que es útil para ciertos casos de uso (de perfiles y depuración) pero se traducirá en desaceleración medible del Callable rendimiento 's. Por defecto: False .

Devoluciones
Una función que se llama cuando se ejecutará el paso definido por feed_list y fetches en esta sesión.

aumentos
TypeError Si fetches o feed_list no pueden interpretarse como argumentos a tf.Session.run .

partial_run

Ver fuente

Continúa la ejecución con más alimentos y recuperaciones.

Esto es experimental y sujetos a cambio.

Para utilizar ejecución parcial, un usuario llama primero partial_run_setup() y luego una secuencia de partial_run() . partial_run_setup especifica la lista de los alimentos y las recuperaciones que se utilizarán en los siguientes partial_run llamadas.

El opcional feed_dict argumento permite que la persona que llama para anular el valor de los tensores en el gráfico. Ver run () para obtener más información.

A continuación se muestra un ejemplo sencillo:

 a = array_ops.placeholder(dtypes.float32, shape=[])
b = array_ops.placeholder(dtypes.float32, shape=[])
c = array_ops.placeholder(dtypes.float32, shape=[])
r1 = math_ops.add(a, b)
r2 = math_ops.multiply(r1, c)

h = sess.partial_run_setup([r1, r2], [a, b, c])
res = sess.partial_run(h, r1, feed_dict={a: 1, b: 2})
res = sess.partial_run(h, r2, feed_dict={c: res})
 

args
handle Un mango para una secuencia de carreras parciales.
fetches Un solo elemento gráfico, una lista de elementos de gráfico, o un diccionario cuyos valores son elementos de gráfico o listas de elementos de gráfico (ver documentación de run ).
feed_dict Un diccionario que mapea elementos de gráfico con los valores (descrito anteriormente).

Devoluciones
Ya sea un solo valor si fetches es un solo elemento gráfico o una lista de valores si fetches es una lista o un diccionario con las mismas teclas que fetches si que es un diccionario (ver documentación de run ).

aumentos
tf.errors.OpError O una de sus subclases de error.

partial_run_setup

Ver fuente

Permite configurar un gráfico con los alimentos y recuperaciones de carrera parcial.

Esto es experimental y sujetos a cambio.

Nota que, contrariamente a run , feeds sólo especifica los elementos del gráfico. Los tensores serán suministrados por los siguientes partial_run llamadas.

args
fetches Un elemento gráfico único, o una lista de elementos de gráfico.
feeds Un elemento gráfico único, o una lista de elementos de gráfico.