tf.distribute.Server

Class Server

Aliases:

  • Class tf.distribute.Server
  • Class tf.train.Server

Defined in tensorflow/python/training/server_lib.py.

An in-process TensorFlow server, for use in distributed training.

A tf.train.Server instance encapsulates a set of devices and a tf.Session target that can participate in distributed training. A server belongs to a cluster (specified by a tf.train.ClusterSpec), and corresponds to a particular task in a named job. The server can communicate with any other server in the same cluster.

__init__

__init__(
    server_or_cluster_def,
    job_name=None,
    task_index=None,
    protocol=None,
    config=None,
    start=True
)

Creates a new server with the given definition.

The job_name, task_index, and protocol arguments are optional, and override any information provided in server_or_cluster_def.

Args:

  • server_or_cluster_def: A tf.train.ServerDef or tf.train.ClusterDef protocol buffer, or a tf.train.ClusterSpec object, describing the server to be created and/or the cluster of which it is a member.
  • job_name: (Optional.) Specifies the name of the job of which the server is a member. Defaults to the value in server_or_cluster_def, if specified.
  • task_index: (Optional.) Specifies the task index of the server in its job. Defaults to the value in server_or_cluster_def, if specified. Otherwise defaults to 0 if the server's job has only one task.
  • protocol: (Optional.) Specifies the protocol to be used by the server. Acceptable values include "grpc", "grpc+verbs". Defaults to the value in server_or_cluster_def, if specified. Otherwise defaults to "grpc".
  • config: (Options.) A tf.ConfigProto that specifies default configuration options for all sessions that run on this server.
  • start: (Optional.) Boolean, indicating whether to start the server after creating it. Defaults to True.

Raises:

  • tf.errors.OpError: Or one of its subclasses if an error occurs while creating the TensorFlow server.

Properties

server_def

Returns the tf.train.ServerDef for this server.

Returns:

A tf.train.ServerDef protocol buffer that describes the configuration of this server.

target

Returns the target for a tf.Session to connect to this server.

To create a tf.Session that connects to this server, use the following snippet:

server = tf.train.Server(...)
with tf.Session(server.target):
  # ...

Returns:

A string containing a session target for this server.

Methods

tf.distribute.Server.create_local_server

@staticmethod
create_local_server(
    config=None,
    start=True
)

Creates a new single-process cluster running on the local host.

This method is a convenience wrapper for creating a tf.train.Server with a tf.train.ServerDef that specifies a single-process cluster containing a single task in a job called "local".

Args:

  • config: (Options.) A tf.ConfigProto that specifies default configuration options for all sessions that run on this server.
  • start: (Optional.) Boolean, indicating whether to start the server after creating it. Defaults to True.

Returns:

A local tf.train.Server.

tf.distribute.Server.join

join()

Blocks until the server has shut down.

This method currently blocks forever.

Raises:

  • tf.errors.OpError: Or one of its subclasses if an error occurs while joining the TensorFlow server.

tf.distribute.Server.start

start()

Starts this server.

Raises:

  • tf.errors.OpError: Or one of its subclasses if an error occurs while starting the TensorFlow server.