# tf.train.Server

### class tf.train.Server

See the guide: Training > Distributed execution

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.

## 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

### __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". 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.

### 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.

### 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.

### start()

Starts this server.

#### Raises:

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