class_docstr: A one-machine strategy that puts all variables on a single device.
  
  Variables are assigned to local CPU or the only GPU. If there is more
  than one GPU, compute operations (other than variable update operations)
  will be replicated across all GPUs.
  
  For Example:
  ```
  strategy = tf.distribute.experimental.CentralStorageStrategy()
  # Create a dataset
  ds = tf.data.Dataset.range(5).batch(2)
  # Distribute that dataset
  dist_dataset = strategy.experimental_distribute_dataset(ds)
  
  with strategy.scope():
    @tf.function
    def train_step(val):
      return val + 1
  
    # Iterate over the distributed dataset
    for x in dist_dataset:
      # process dataset elements
      strategy.run(train_step, args=(x,))
  ```
class_docstr_tok: ["A","one-machine","strategy","that","puts","all","variables","on","a","single","device",".","Variables","are","assigned","to","local","CPU","or","the","only","GPU",".","If","there","is","more","than","one","GPU",",","compute","operations","(","other","than","variable","update","operations",")","will","be","replicated","across","all","GPUs",".","For","Example",":","``","`","strategy","=","tf.distribute.experimental.CentralStorageStrategy","(",")","#","Create","a","dataset","ds","=","tf.data.Dataset.range","(","5",")",".batch","(","2",")","#","Distribute","that","dataset","dist_dataset","=","strategy.experimental_distribute_dataset","(","ds",")","with","strategy.scope","(",")",":","@","tf.function","def","train_step","(","val",")",":","return","val","+","1","#","Iterate","over","the","distributed","dataset","for","x","in","dist_dataset",":","#","process","dataset","elements","strategy.run","(","train_step",",","args=","(","x",",",")",")","``","`"]
docstr: Distributes a tf.data.Dataset instance provided via dataset.
  
  The returned dataset is a wrapped strategy dataset which creates a
  multidevice iterator under the hood. It prefetches the input data to the
  specified devices on the worker. The returned distributed dataset can be
  iterated over similar to how regular datasets can.
  
  NOTE: Currently, the user cannot add any more transformations to a
  distributed dataset.
  
  For Example:
  ```
  strategy = tf.distribute.CentralStorageStrategy()  # with 1 CPU and 1 GPU
  dataset = tf.data.Dataset.range(10).batch(2)
  dist_dataset = strategy.experimental_distribute_dataset(dataset)
  for x in dist_dataset:
    print(x)  # Prints PerReplica values [0, 1], [2, 3],...
  
  ```
  Args:
    dataset: `tf.data.Dataset` to be prefetched to device.
    options: `tf.distribute.InputOptions` used to control options on how this
      dataset is distributed.
  
  Returns:
    A "distributed `Dataset`" that the caller can iterate over.
docstr_tok: ["Distributes","a","tf.data.Dataset","instance","provided","via","dataset",".","The","returned","dataset","is","a","wrapped","strategy","dataset","which","creates","a","multidevice","iterator","under","the","hood",".","It","prefetches","the","input","data","to","the","specified","devices","on","the","worker",".","The","returned","distributed","dataset","can","be","iterated","over","similar","to","how","regular","datasets","can",".","NOTE",":","Currently",",","the","user","can","not","add","any","more","transformations","to","a","distributed","dataset",".","For","Example",":","``","`","strategy","=","tf.distribute.CentralStorageStrategy","(",")","#","with","1","CPU","and","1","GPU","dataset","=","tf.data.Dataset.range","(","10",")",".batch","(","2",")","dist_dataset","=","strategy.experimental_distribute_dataset","(","dataset",")","for","x","in","dist_dataset",":","print","(","x",")","#","Prints","PerReplica","values","[","0",",","1","]",",","[","2",",","3","]",",","...","``","`","Args",":","dataset",":","`","tf.data.Dataset","`","to","be","prefetched","to","device",".","options",":","`","tf.distribute.InputOptions","`","used","to","control","options","on","how","this","dataset","is","distributed",".","Returns",":","A","``","distributed","`","Dataset","`","``","that","the","caller","can","iterate","over","."]
code: def experimental_distribute_dataset(
      self, dataset, options=None
  ):  # pylint: disable=useless-super-delegation
      """Distributes a tf.data.Dataset instance provided via dataset.
  
      The returned dataset is a wrapped strategy dataset which creates a
      multidevice iterator under the hood. It prefetches the input data to the
      specified devices on the worker. The returned distributed dataset can be
      iterated over similar to how regular datasets can.
  
      NOTE: Currently, the user cannot add any more transformations to a
      distributed dataset.
  
      For Example:
      ```
      strategy = tf.distribute.CentralStorageStrategy()  # with 1 CPU and 1 GPU
      dataset = tf.data.Dataset.range(10).batch(2)
      dist_dataset = strategy.experimental_distribute_dataset(dataset)
      for x in dist_dataset:
        print(x)  # Prints PerReplica values [0, 1], [2, 3],...
  
      ```
      Args:
        dataset: `tf.data.Dataset` to be prefetched to device.
        options: `tf.distribute.InputOptions` used to control options on how this
          dataset is distributed.
  
      Returns:
        A "distributed `Dataset`" that the caller can iterate over.
      """
      if (
          options
          and options.experimental_replication_moden
          == distribute_lib.InputReplicationMode.PER_REPLICA
      ):
          raise NotImplementedError(
              "InputReplicationMode.PER_REPLICA "
              "is only supported in "
              "`experimental_distribute_datasets_from_function`."
          )
      return super(
          CentralStorageStrategy, self
      ).experimental_distribute_dataset(dataset, options)
  
file_path: tensorflow/tensorflow/python/distribute/central_storage_strategy.py
imports: from tensorflow.python.distribute import device_util
  from tensorflow.python.distribute import distribute_lib
  from tensorflow.python.distribute import parameter_server_strategy
  from tensorflow.python.util.tf_export import tf_export
label_desc: Use image node_id 3 for calling the CentralStorageStrategy obj's underlying member method code with example usage: obj.experimental_distribute_dataset(dataset, options) and returns: super