tf.data.experimental.service.ShardingPolicy

Specifies how to shard data among tf.data service workers.

OFF: No sharding will be performed. Each worker produces the entire dataset without any sharding. With this mode, the best practice is to shuffle the dataset nondeterministically so that workers process the dataset in different orders. If workers are restarted or join the cluster mid-job, they will begin processing the dataset from the beginning.

DYNAMIC: The input dataset is dynamically split among workers at runtime. Each worker gets the next split when it reads data from the dispatcher. Data is produced non-deterministically in this mode. Dynamic sharding works well with varying-sized tf.data service clusters, e.g., when you need to auto-scale your workers. Dynamic sharding provides at-most once visitation guarantees. No examples will be repeated, but some may be missed if a tf.data service worker gets restarted while processing a file.

The following are static sharding policies. The semantics are similar to tf.data.experimental.AutoShardPolicy. These policies require:

  • The tf.data service cluster is configured with a fixed list of workers in DispatcherConfig.
  • Each client only reads from the local tf.data service worker.

If a worker is restarted while performing static sharding, the worker will begin processing its shard again from the beginning.

FILE: Shards by input files (i.e. each worker will get a fixed set of files to process). When this option is selected, make sure that there is at least as many files as workers. If there are fewer input files than workers, a runtime error will be raised.

DATA: Shards by elements produced by the dataset. Each worker will process the whole dataset and discard the portion that is not for itself. Note that for this mode to correctly partition the dataset elements, the dataset needs to produce elements in a deterministic order.

FILE_OR_DATA: Attempts FILE-based sharding, falling back to DATA-based sharding on failure.

HINT: Looks for the presence of shard(SHARD_HINT, ...) which is treated as a placeholder to replace with shard(num_workers, worker_index).

denominator the denominator of a rational number in lowest terms
imag the imaginary part of a complex number
numerator the numerator of a rational number in lowest terms
real the real part of a complex number

Methods

as_integer_ratio

Return integer ratio.

Return a pair of integers, whose ratio is exactly equal to the original int and with a positive denominator.

(10).as_integer_ratio()
(10, 1)
(-10).as_integer_ratio()
(-10, 1)
(0).as_integer_ratio()
(0, 1)

bit_count

Number of ones in the binary representation of the absolute value of self.

Also known as the population count.

bin(13)
'0b1101'
(13).bit_count()
3

bit_length

Number of bits necessary to represent self in binary.

bin(37)
'0b100101'
(37).bit_length()
6

conjugate

Returns self, the complex conjugate of any int.

from_bytes

Return the integer represented by the given array of bytes.

bytes Holds the array of bytes to convert. The argument must either support the buffer protocol or be an iterable object producing bytes. Bytes and bytearray are examples of built-in objects that support the buffer protocol. byteorder The byte order used to represent the integer. If byteorder is 'big', the most significant byte is at the beginning of the byte array. If byteorder is 'little', the most significant byte is at the end of the byte array. To request the native byte order of the host system, use `sys.byteorder' as the byte order value. Default is to use 'big'. signed Indicates whether two's complement is used to represent the integer.

to_bytes

Return an array of bytes representing an integer.

length Length of bytes object to use. An OverflowError is raised if the integer is not representable with the given number of bytes. Default is length 1. byteorder The byte order used to represent the integer. If byteorder is 'big', the most significant byte is at the beginning of the byte array. If byteorder is 'little', the most significant byte is at the end of the byte array. To request the native byte order of the host system, use `sys.byteorder' as the byte order value. Default is to use 'big'. signed Determines whether two's complement is used to represent the integer. If signed is False and a negative integer is given, an OverflowError is raised.

__abs__

abs(self)

__add__

Return self+value.

__and__

Return self&value.

__bool__

True if self else False

__eq__

Return self==value.

__floordiv__

Return self//value.

__ge__

Return self>=value.

__gt__

Return self>value.

__invert__

~self

__le__

Return self<=value.

__lshift__

Return self<<value.

__lt__

Return self<value.

__mod__

Return self%value.

__mul__

Return self*value.

__ne__

Return self!=value.

__neg__

-self

__or__

Return self|value.

__pos__

+self

__pow__

Return pow(self, value, mod).

__radd__

Return value+self.

__rand__

Return value&self.

__rfloordiv__

Return value//self.

__rlshift__

Return value<<self.

__rmod__

Return value%self.

__rmul__

Return value*self.

__ror__

Return value|self.

__rpow__

Return pow(value, self, mod).

__rrshift__

Return value>>self.

__rshift__

Return self>>value.

__rsub__

Return value-self.

__rtruediv__

Return value/self.

__rxor__

Return value^self.

__sub__

Return self-value.

__truediv__

Return self/value.

__xor__

Return self^value.

DATA <ShardingPolicy.DATA: 3>
DYNAMIC <ShardingPolicy.DYNAMIC: 1>
FILE <ShardingPolicy.FILE: 2>
FILE_OR_DATA <ShardingPolicy.FILE_OR_DATA: 4>
HINT <ShardingPolicy.HINT: 5>
OFF <ShardingPolicy.OFF: 0>