# tf.contrib.learn.RunConfig

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v1.15.0/tensorflow/contrib/learn/python/learn/estimators/run_config.py#L221-L420) |

This class specifies the configurations for an `Estimator` run.

Inherits From: [`RunConfig`](https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/estimator/RunConfig)

    tf.contrib.learn.RunConfig(
        master=None, num_cores=0, log_device_placement=False, gpu_memory_fraction=1,
        tf_random_seed=None, save_summary_steps=100, save_checkpoints_secs=_USE_DEFAULT,
        save_checkpoints_steps=None, keep_checkpoint_max=5,
        keep_checkpoint_every_n_hours=10000, log_step_count_steps=100, protocol=None,
        evaluation_master='', model_dir=None, session_config=None,
        session_creation_timeout_secs=7200
    )

This class is a deprecated implementation of [`tf.estimator.RunConfig`](https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/estimator/RunConfig)
interface.

<br />

<br />

<br />

| ## Args ||
|---|---|
| `master` | TensorFlow master. Defaults to empty string for local. |
| `num_cores` | Number of cores to be used. If 0, the system picks an appropriate number (default: 0). |
| `log_device_placement` | Log the op placement to devices (default: False). |
| `gpu_memory_fraction` | Fraction of GPU memory used by the process on each GPU uniformly on the same machine. |
| `tf_random_seed` | Random seed for TensorFlow initializers. Setting this value allows consistency between reruns. |
| `save_summary_steps` | Save summaries every this many steps. |
| `save_checkpoints_secs` | Save checkpoints every this many seconds. Can not be specified with `save_checkpoints_steps`. |
| `save_checkpoints_steps` | Save checkpoints every this many steps. Can not be specified with `save_checkpoints_secs`. |
| `keep_checkpoint_max` | The maximum number of recent checkpoint files to keep. As new files are created, older files are deleted. If None or 0, all checkpoint files are kept. Defaults to 5 (that is, the 5 most recent checkpoint files are kept.) |
| `keep_checkpoint_every_n_hours` | Number of hours between each checkpoint to be saved. The default value of 10,000 hours effectively disables the feature. |
| `log_step_count_steps` | The frequency, in number of global steps, that the global step/sec will be logged during training. |
| `protocol` | An optional argument which specifies the protocol used when starting server. None means default to grpc. |
| `evaluation_master` | the master on which to perform evaluation. |
| `model_dir` | directory where model parameters, graph etc are saved. If `None`, will use `model_dir` property in `TF_CONFIG` environment variable. If both are set, must have same value. If both are `None`, see `Estimator` about where the model will be saved. |
| `session_config` | a ConfigProto used to set session parameters, or None. Note - using this argument, it is easy to provide settings which break otherwise perfectly good models. Use with care. |
| `session_creation_timeout_secs` | Max time workers should wait for a session to become available (on initialization or when recovering a session) with MonitoredTrainingSession. Defaults to 7200 seconds, but users may want to set a lower value to detect problems with variable / session (re)-initialization more quickly. |

<br />

<br />

<br />

<br />

| ## Attributes ||
|---|---|
| `cluster_spec` | <br /> <br /> |
| `device_fn` | Returns the device_fn. <br /> If device_fn is not `None`, it overrides the default device function used in `Estimator`. Otherwise the default one is used. |
| `environment` | <br /> <br /> |
| `eval_distribute` | Optional [`tf.distribute.Strategy`](https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/distribute/Strategy) for evaluation. |
| `evaluation_master` | <br /> <br /> |
| `experimental_max_worker_delay_secs` | <br /> <br /> |
| `global_id_in_cluster` | The global id in the training cluster. <br /> All global ids in the training cluster are assigned from an increasing sequence of consecutive integers. The first id is 0. > [!NOTE] > **Note:** Task id (the property field `task_id`) is tracking the index of the node among all nodes with the SAME task type. For example, given the cluster definition as follows: cluster = {'chief': ['host0:2222'], 'ps': ['host1:2222', 'host2:2222'], 'worker': ['host3:2222', 'host4:2222', 'host5:2222']} Nodes with task type `worker` can have id 0, 1, 2. Nodes with task type `ps` can have id, 0, 1. So, `task_id` is not unique, but the pair (`task_type`, `task_id`) can uniquely determine a node in the cluster. Global id, i.e., this field, is tracking the index of the node among ALL nodes in the cluster. It is uniquely assigned. For example, for the cluster spec given above, the global ids are assigned as: task_type  | task_id  |  global_id --- chief      | 0        |  0 worker     | 0        |  1 worker     | 1        |  2 worker     | 2        |  3 ps         | 0        |  4 ps         | 1        |  5 <br /> |
| `is_chief` | <br /> <br /> |
| `keep_checkpoint_every_n_hours` | <br /> <br /> |
| `keep_checkpoint_max` | <br /> <br /> |
| `log_step_count_steps` | <br /> <br /> |
| `master` | <br /> <br /> |
| `model_dir` | <br /> <br /> |
| `num_ps_replicas` | <br /> <br /> |
| `num_worker_replicas` | <br /> <br /> |
| `protocol` | Returns the optional protocol value. |
| `save_checkpoints_secs` | <br /> <br /> |
| `save_checkpoints_steps` | <br /> <br /> |
| `save_summary_steps` | <br /> <br /> |
| `service` | Returns the platform defined (in TF_CONFIG) service dict. |
| `session_config` | <br /> <br /> |
| `session_creation_timeout_secs` | <br /> <br /> |
| `task_id` | <br /> <br /> |
| `task_type` | <br /> <br /> |
| `tf_config` | <br /> <br /> |
| `tf_random_seed` | <br /> <br /> |
| `train_distribute` | Optional [`tf.distribute.Strategy`](https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/distribute/Strategy) for training. |

<br />

## Methods

### `get_task_id`

[View source](https://github.com/tensorflow/tensorflow/blob/v1.15.0/tensorflow/contrib/learn/python/learn/estimators/run_config.py#L204-L218)

    @staticmethod
    get_task_id()

Returns task index from `TF_CONFIG` environmental variable.

If you have a ClusterConfig instance, you can just access its task_id
property instead of calling this function and re-parsing the environmental
variable.

<br />

<br />

<br />

| Returns ||
|---|---|
| `TF_CONFIG['task']['index']`. Defaults to 0. ||

<br />

### `replace`

[View source](https://github.com/tensorflow/estimator/tree/master/tensorflow_estimator/python/estimator/run_config.py)

    replace(
        **kwargs
    )

Returns a new instance of `RunConfig` replacing specified properties.

Only the properties in the following list are allowed to be replaced:

- `model_dir`,
- `tf_random_seed`,
- `save_summary_steps`,
- `save_checkpoints_steps`,
- `save_checkpoints_secs`,
- `session_config`,
- `keep_checkpoint_max`,
- `keep_checkpoint_every_n_hours`,
- `log_step_count_steps`,
- `train_distribute`,
- `device_fn`,
- `protocol`.
- `eval_distribute`,
- `experimental_distribute`,
- `experimental_max_worker_delay_secs`,

In addition, either `save_checkpoints_steps` or `save_checkpoints_secs`
can be set (should not be both).

<br />

<br />

<br />

| Args ||
|---|---|
| `**kwargs` | keyword named properties with new values. |

<br />

<br />

<br />

<br />

| Raises ||
|---|---|
| `ValueError` | If any property name in `kwargs` does not exist or is not allowed to be replaced, or both `save_checkpoints_steps` and `save_checkpoints_secs` are set. |

<br />

<br />

<br />

<br />

| Returns ||
|---|---|
| a new instance of `RunConfig`. ||

<br />

### `uid`

[View source](https://github.com/tensorflow/tensorflow/blob/v1.15.0/tensorflow/contrib/learn/python/learn/estimators/run_config.py#L343-L376)

    uid(
        whitelist=None
    )

Generates a 'Unique Identifier' based on all internal fields. (experimental)

> [!WARNING]
> **Warning:** THIS FUNCTION IS EXPERIMENTAL. It may change or be removed at any time, and without warning.

Caller should use the uid string to check `RunConfig` instance integrity
in one session use, but should not rely on the implementation details, which
is subject to change.

<br />

<br />

<br />

| Args ||
|---|---|
| `whitelist` | A list of the string names of the properties uid should not include. If `None`, defaults to `_DEFAULT_UID_WHITE_LIST`, which includes most properties user allowes to change. |

<br />

<br />

<br />

<br />

| Returns ||
|---|---|
| A uid string. ||

<br />