Add make_numpy_dataset to tf.distribute.Strategy (V1 and V2).
We are removing it from the strategy.extended as well as removing strategy.experimental_make_numpy_iterator. Instead, we are adding this method in the main class. Users should use this method first and then distribute the returned dataset like other datasets. PiperOrigin-RevId: 243463153
This commit is contained in:
parent
471993acd6
commit
256add6a5b
@ -370,6 +370,24 @@ class Strategy(object):
|
||||
return self.extended._make_input_fn_iterator( # pylint: disable=protected-access
|
||||
input_fn, replication_mode=replication_mode)
|
||||
|
||||
def experimental_make_numpy_dataset(self, numpy_input):
|
||||
"""Makes a dataset for input provided via a numpy array.
|
||||
|
||||
This avoids adding `numpy_input` as a large constant in the graph,
|
||||
and copies the data to the machine or machines that will be processing
|
||||
the input.
|
||||
|
||||
Args:
|
||||
numpy_input: A nest of NumPy input arrays that will be distributed evenly
|
||||
across all replicas. Note that lists of Numpy arrays are stacked,
|
||||
as that is normal `tf.data.Dataset` behavior.
|
||||
|
||||
Returns:
|
||||
A `tf.data.Dataset` representing `numpy_input`.
|
||||
"""
|
||||
return self.extended.experimental_make_numpy_dataset(
|
||||
numpy_input, session=None)
|
||||
|
||||
@doc_controls.do_not_generate_docs # DEPRECATED: TF 1.x only
|
||||
def experimental_run(self, fn, input_iterator=None):
|
||||
"""DEPRECATED TF 1.x ONLY."""
|
||||
@ -696,6 +714,26 @@ class StrategyV1(Strategy):
|
||||
return super(StrategyV1, self).make_input_fn_iterator(
|
||||
input_fn, replication_mode)
|
||||
|
||||
def experimental_make_numpy_dataset(self, numpy_input, session=None):
|
||||
"""Makes a dataset for input provided via a numpy array.
|
||||
|
||||
This avoids adding `numpy_input` as a large constant in the graph,
|
||||
and copies the data to the machine or machines that will be processing
|
||||
the input.
|
||||
|
||||
Args:
|
||||
numpy_input: A nest of NumPy input arrays that will be distributed evenly
|
||||
across all replicas. Note that lists of Numpy arrays are stacked,
|
||||
as that is normal `tf.data.Dataset` behavior.
|
||||
session: (TensorFlow v1.x graph execution only) A session used for
|
||||
initialization.
|
||||
|
||||
Returns:
|
||||
A `tf.data.Dataset` representing `numpy_input`.
|
||||
"""
|
||||
return self.extended.experimental_make_numpy_dataset(
|
||||
numpy_input, session=session)
|
||||
|
||||
def experimental_run(self, fn, input_iterator=None): # pylint: disable=useless-super-delegation
|
||||
"""Runs ops in `fn` on each replica, with inputs from `input_iterator`.
|
||||
|
||||
|
@ -341,7 +341,7 @@ class TestStrategyTest(test.TestCase):
|
||||
@_run_in_and_out_of_scope
|
||||
def testExperimentalMakeNumpyDataset(self, dist):
|
||||
numpy_input = np.ones([10], dtype=np.float32)
|
||||
dataset = dist.extended.experimental_make_numpy_dataset(numpy_input)
|
||||
dataset = dist.experimental_make_numpy_dataset(numpy_input)
|
||||
self.assertEqual(
|
||||
self.evaluate(dataset.reduce(0., lambda a, b: a + b)), 10.)
|
||||
|
||||
|
@ -32,6 +32,10 @@ tf_class {
|
||||
name: "experimental_local_results"
|
||||
argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_make_numpy_dataset"
|
||||
argspec: "args=[\'self\', \'numpy_input\', \'session\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_run"
|
||||
argspec: "args=[\'self\', \'fn\', \'input_iterator\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
|
@ -32,6 +32,10 @@ tf_class {
|
||||
name: "experimental_local_results"
|
||||
argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_make_numpy_dataset"
|
||||
argspec: "args=[\'self\', \'numpy_input\', \'session\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_run"
|
||||
argspec: "args=[\'self\', \'fn\', \'input_iterator\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
|
@ -31,6 +31,10 @@ tf_class {
|
||||
name: "experimental_local_results"
|
||||
argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_make_numpy_dataset"
|
||||
argspec: "args=[\'self\', \'numpy_input\', \'session\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_run"
|
||||
argspec: "args=[\'self\', \'fn\', \'input_iterator\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
|
@ -32,6 +32,10 @@ tf_class {
|
||||
name: "experimental_local_results"
|
||||
argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_make_numpy_dataset"
|
||||
argspec: "args=[\'self\', \'numpy_input\', \'session\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_run"
|
||||
argspec: "args=[\'self\', \'fn\', \'input_iterator\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
|
@ -32,6 +32,10 @@ tf_class {
|
||||
name: "experimental_local_results"
|
||||
argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_make_numpy_dataset"
|
||||
argspec: "args=[\'self\', \'numpy_input\', \'session\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_run"
|
||||
argspec: "args=[\'self\', \'fn\', \'input_iterator\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
|
@ -32,6 +32,10 @@ tf_class {
|
||||
name: "experimental_local_results"
|
||||
argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_make_numpy_dataset"
|
||||
argspec: "args=[\'self\', \'numpy_input\', \'session\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_run"
|
||||
argspec: "args=[\'self\', \'fn\', \'input_iterator\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
|
@ -36,6 +36,10 @@ tf_class {
|
||||
name: "experimental_local_results"
|
||||
argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_make_numpy_dataset"
|
||||
argspec: "args=[\'self\', \'numpy_input\', \'session\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_run"
|
||||
argspec: "args=[\'self\', \'fn\', \'input_iterator\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
|
@ -31,6 +31,10 @@ tf_class {
|
||||
name: "experimental_local_results"
|
||||
argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_make_numpy_dataset"
|
||||
argspec: "args=[\'self\', \'numpy_input\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_run"
|
||||
argspec: "args=[\'self\', \'fn\', \'input_iterator\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
|
@ -31,6 +31,10 @@ tf_class {
|
||||
name: "experimental_local_results"
|
||||
argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_make_numpy_dataset"
|
||||
argspec: "args=[\'self\', \'numpy_input\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_run"
|
||||
argspec: "args=[\'self\', \'fn\', \'input_iterator\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
|
@ -30,6 +30,10 @@ tf_class {
|
||||
name: "experimental_local_results"
|
||||
argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_make_numpy_dataset"
|
||||
argspec: "args=[\'self\', \'numpy_input\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_run"
|
||||
argspec: "args=[\'self\', \'fn\', \'input_iterator\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
|
@ -31,6 +31,10 @@ tf_class {
|
||||
name: "experimental_local_results"
|
||||
argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_make_numpy_dataset"
|
||||
argspec: "args=[\'self\', \'numpy_input\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_run"
|
||||
argspec: "args=[\'self\', \'fn\', \'input_iterator\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
|
@ -31,6 +31,10 @@ tf_class {
|
||||
name: "experimental_local_results"
|
||||
argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_make_numpy_dataset"
|
||||
argspec: "args=[\'self\', \'numpy_input\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_run"
|
||||
argspec: "args=[\'self\', \'fn\', \'input_iterator\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
|
@ -31,6 +31,10 @@ tf_class {
|
||||
name: "experimental_local_results"
|
||||
argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_make_numpy_dataset"
|
||||
argspec: "args=[\'self\', \'numpy_input\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_run"
|
||||
argspec: "args=[\'self\', \'fn\', \'input_iterator\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
|
@ -31,6 +31,10 @@ tf_class {
|
||||
name: "experimental_local_results"
|
||||
argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_make_numpy_dataset"
|
||||
argspec: "args=[\'self\', \'numpy_input\'], varargs=None, keywords=None, defaults=None"
|
||||
}
|
||||
member_method {
|
||||
name: "experimental_run"
|
||||
argspec: "args=[\'self\', \'fn\', \'input_iterator\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
|
Loading…
Reference in New Issue
Block a user