Class DeviceSpec
Defined in tensorflow/python/framework/device.py
.
Represents a (possibly partial) specification for a TensorFlow device.
DeviceSpec
s are used throughout TensorFlow to describe where state is stored
and computations occur. Using DeviceSpec
allows you to parse device spec
strings to verify their validity, merge them or compose them programmatically.
Example:
# Place the operations on device "GPU:0" in the "ps" job.
device_spec = DeviceSpec(job="ps", device_type="GPU", device_index=0)
with tf.device(device_spec):
# Both my_var and squared_var will be placed on /job:ps/device:GPU:0.
my_var = tf.Variable(..., name="my_variable")
squared_var = tf.square(my_var)
If a DeviceSpec
is partially specified, it will be merged with other
DeviceSpec
s according to the scope in which it is defined. DeviceSpec
components defined in inner scopes take precedence over those defined in
outer scopes.
with tf.device(DeviceSpec(job="train", )):
with tf.device(DeviceSpec(job="ps", device_type="GPU", device_index=0):
# Nodes created here will be assigned to /job:ps/device:GPU:0.
with tf.device(DeviceSpec(device_type="GPU", device_index=1):
# Nodes created here will be assigned to /job:train/device:GPU:1.
A DeviceSpec
consists of 5 components -- each of
which is optionally specified:
- Job: The job name.
- Replica: The replica index.
- Task: The task index.
- Device type: The device type string (e.g. "CPU" or "GPU").
- Device index: The device index.
__init__
__init__(
job=None,
replica=None,
task=None,
device_type=None,
device_index=None
)
Create a new DeviceSpec
object.
Args:
job
: string. Optional job name.replica
: int. Optional replica index.task
: int. Optional task index.device_type
: Optional device type string (e.g. "CPU" or "GPU")device_index
: int. Optional device index. If left unspecified, device represents 'any' device_index.
Properties
job
replica
task
Methods
tf.DeviceSpec.__eq__
__eq__(other)
Return self==value.
tf.DeviceSpec.from_string
@staticmethod
from_string(spec)
Construct a DeviceSpec
from a string.
Args:
spec
: a string of the form /job:/replica: /task: /device:CPU: or /job: /replica: /task: /device:GPU: as cpu and gpu are mutually exclusive. All entries are optional.
Returns:
A DeviceSpec.
tf.DeviceSpec.merge_from
merge_from(dev)
Merge the properties of "dev" into this DeviceSpec
.
Args:
dev
: aDeviceSpec
.
tf.DeviceSpec.parse_from_string
parse_from_string(spec)
Parse a DeviceSpec
name into its components.
Args:
spec
: a string of the form /job:/replica: /task: /device:CPU: or /job: /replica: /task: /device:GPU: as cpu and gpu are mutually exclusive. All entries are optional.
Returns:
The DeviceSpec
.
Raises:
ValueError
: if the spec was not valid.
tf.DeviceSpec.to_string
to_string()
Return a string representation of this DeviceSpec
.
Returns:
a string of the form
/job: