platform/upstream/tensorflow.git
6 years agoFix bug in which the ConvLSTM2D layer could not be cloned.
Francois Chollet [Wed, 9 May 2018 22:36:34 +0000 (15:36 -0700)]
Fix bug in which the ConvLSTM2D layer could not be cloned.

PiperOrigin-RevId: 196040413

6 years agoAdd option to set more generic module name filter for API generation.
Michael Case [Wed, 9 May 2018 22:07:40 +0000 (15:07 -0700)]
Add option to set more generic module name filter for API generation.

PiperOrigin-RevId: 196036164

6 years agoRun tensorflow/python/kernel_tests:conv2d_backprop_filter_grad_test only when omptimz...
A. Unique TensorFlower [Wed, 9 May 2018 21:41:23 +0000 (14:41 -0700)]
Run tensorflow/python/kernel_tests:conv2d_backprop_filter_grad_test only when omptimzing to avoid flaky timeouts

PiperOrigin-RevId: 196031762

6 years ago[XLA] Allow HloInstructionMap and HloInstructionSet to contain null keys.
A. Unique TensorFlower [Wed, 9 May 2018 21:20:39 +0000 (14:20 -0700)]
[XLA] Allow HloInstructionMap and HloInstructionSet to contain null keys.

Null HloInstruction* keys may be useful for representing sentinel values.

PiperOrigin-RevId: 196028425

6 years agoUse easy_install for pip installation for RBE images.
A. Unique TensorFlower [Wed, 9 May 2018 21:14:48 +0000 (14:14 -0700)]
Use easy_install for pip installation for RBE images.

We will remove python-pip deb packages from rbe-{debian8, ubuntu16_04}:
  https://github.com/bazelbuild/bazel-toolchains/pull/46
So that we don't we have pip install by deb packages and Python's own package system (and they conflict with each other)

We only install pip by easy_install.

PiperOrigin-RevId: 196027421

6 years agoFix default direction to left when almost no sparsity for a sparse inequality split.
A. Unique TensorFlower [Wed, 9 May 2018 21:07:17 +0000 (14:07 -0700)]
Fix default direction to left when almost no sparsity for a sparse inequality split.

PiperOrigin-RevId: 196026149

6 years agoInternal change.
Anna R [Wed, 9 May 2018 20:55:47 +0000 (13:55 -0700)]
Internal change.

PiperOrigin-RevId: 196024130

6 years agoWhen using static_state_saving_rnn(..) in the following manner
A. Unique TensorFlower [Wed, 9 May 2018 20:55:20 +0000 (13:55 -0700)]
When using static_state_saving_rnn(..) in the following manner

    _, state = tf.nn.static_state_saving_rnn(..)

the runtime will be blocked after some time, because the save_state method of the state_saver object won't be executed as a part of the graph (that part depends only on output node in the current implementation).
Now it should depend on state as well, so the above implementation won't be blocked.

PiperOrigin-RevId: 196024050

6 years agoAdding constant slice op support.
A. Unique TensorFlower [Wed, 9 May 2018 20:43:14 +0000 (13:43 -0700)]
Adding constant slice op support.

PiperOrigin-RevId: 196021899

6 years agoInternal change.
Yifei Feng [Wed, 9 May 2018 20:31:31 +0000 (13:31 -0700)]
Internal change.

PiperOrigin-RevId: 196020032

6 years agoUpdate tf.nn.[max,avg]_pool to specify that it accepts list/tuple stride and kernel...
A. Unique TensorFlower [Wed, 9 May 2018 20:28:00 +0000 (13:28 -0700)]
Update tf.nn.[max,avg]_pool to specify that it accepts list/tuple stride and kernel arguments, not tensor arguments.

If you actually specify a tensor argument here, you get the error:
TypeError: Expected list for 'ksize' argument to 'avg_pool' Op, not <tf.Tensor 'Const_1:0' shape=(4,) dtype=int32>.
PiperOrigin-RevId: 196019507

6 years ago[XLA] First step in adding Literal slice classes, to improve interface safety
Kay Zhu [Wed, 9 May 2018 20:07:35 +0000 (13:07 -0700)]
[XLA] First step in adding Literal slice classes, to improve interface safety
and prepare for enabling more efficient interfacing from Tensor to Literal to
reduce host to device latency.

More specically:
* Introducing a new LiteralBase abstract base class that contains all immutable
methods of from the old Literal class.

* Introducing a subclass LiteralSlice to replace original LiteralView class.
LiteralSlice class is read-only and does not own Shape nor any buffer through
the Pieces. Change a number of callers to use LiteralSlice directly.

* Change Literal class to explicitly own the underlying Shape as well as owning
the underlying buffer via Piece.

* Conversion from Literal to LiteralSlice is now done via an implicit
conversion constructor instead of inheritance.

* Decouple ShapeTree from Literal classes.

* Use copy-and-swap for assignment constructors.

* Other minor cleanups.

PiperOrigin-RevId: 196016576

6 years agoIncrease size of test tensorflow/python:basic_session_run_hooks_test to avoid flaky...
A. Unique TensorFlower [Wed, 9 May 2018 20:06:50 +0000 (13:06 -0700)]
Increase size of test tensorflow/python:basic_session_run_hooks_test to avoid flaky timeouts

PiperOrigin-RevId: 196016436

6 years agoAdd IsCondSwitch.
Jacques Pienaar [Wed, 9 May 2018 20:03:45 +0000 (13:03 -0700)]
Add IsCondSwitch.

* Switch nodes are not part of the cond contexts of the tf.cond that they are the switches for, so check the contexts of the outputs of the switch to determine if a cond switch.
* Include the pivot of a cond in its cond context (there is one pivot per CondContext)
* If a cond is nested in a while loop, then the switch nodes of the cond is in the control flow context of the while loop, so only return that it is a loop switch if it isn't a cond switch.

PiperOrigin-RevId: 196015879

6 years agoCollective Ops Part 6
A. Unique TensorFlower [Wed, 9 May 2018 19:26:06 +0000 (12:26 -0700)]
Collective Ops Part 6

Distributed-mode implementations of CollectiveRemoteAccess.
Extend Worker interface with corresponding new methods.

This change is part of a series of changes introducing infrastructure
for collective ops and initial implementations of reduction and broadcast.

PiperOrigin-RevId: 196010718

6 years ago[TF:XLA] Bump open source llvm revision to r331867
Sanjoy Das [Wed, 9 May 2018 19:15:17 +0000 (12:15 -0700)]
[TF:XLA] Bump open source llvm revision to r331867

PiperOrigin-RevId: 196009199

6 years ago[tf.data] Saveable iterator for SqlDataset.
Shivani Agrawal [Wed, 9 May 2018 19:15:11 +0000 (12:15 -0700)]
[tf.data] Saveable iterator for SqlDataset.

PiperOrigin-RevId: 196009176

6 years agoUse parenthesis based construction instead of brace initialization
Smit Hinsu [Wed, 9 May 2018 19:07:05 +0000 (12:07 -0700)]
Use parenthesis based construction instead of brace initialization

Updates all the construction calls for Status, ScopedActivateContext and
mutexes withing stream_executor to follow the recommendation in
https://abseil.io/tips/88

PiperOrigin-RevId: 196007931

6 years agoInternal Change.
Michael Case [Wed, 9 May 2018 19:05:18 +0000 (12:05 -0700)]
Internal Change.

PiperOrigin-RevId: 196007623

6 years agoIncrease size of tensorflow/contrib/sparsemax:sparsemax_test to medium to avoid flaky...
A. Unique TensorFlower [Wed, 9 May 2018 18:45:52 +0000 (11:45 -0700)]
Increase size of tensorflow/contrib/sparsemax:sparsemax_test to medium to avoid flaky timeouts

PiperOrigin-RevId: 196004443

6 years agoTFTS: Make estimators_test non-flaky
Allen Lavoie [Wed, 9 May 2018 18:28:30 +0000 (11:28 -0700)]
TFTS: Make estimators_test non-flaky

Replaces a "loss decreased" check with basic shape checking (it should have been seeded already, so there's likely some race condition which I should track down...).

PiperOrigin-RevId: 196001526

6 years ago[XLA] Make XLA's memory allocator return an owning smart pointer.
Justin Lebar [Wed, 9 May 2018 18:22:31 +0000 (11:22 -0700)]
[XLA] Make XLA's memory allocator return an owning smart pointer.

Previously, xla::DeviceMemoryAllocator::Allocate returned a
stream_executor::DeviceMemoryBase.  This is morally equivalent to a raw
pointer: It's on you the user to call Deallocate().

Unfortunately we ~never got this right.  Essentially all users of
Allocate() call it in a loop, and TF_RETURN_IF_ERROR within the loop.
If any of these allocations fails (mostly commonly, due to OOM), we leak
everything we've allocated up until then.

This patch changes our API so that it returns an owning pointer.  Now
things mostly Just Work.

Also worth calling out: The lambda in CpuExecutable::ExecuteOnStream
passed to ExecuteComputeFunction almost certainly had multithreaded
use-after-free bugs.  This patch fixes them.

PiperOrigin-RevId: 196000535

6 years agoBenchmark for tf.scan in graph and eager modes. As of this writing, a simple tf.scan...
A. Unique TensorFlower [Wed, 9 May 2018 18:22:24 +0000 (11:22 -0700)]
Benchmark for tf.scan in graph and eager modes. As of this writing, a simple tf.scan sum is ~80x faster in graph mode (including graph building time) for 32,000 nodes. Additionally, tf.scan exhibits quadratic scaling in eager mode but linear in graph.

PiperOrigin-RevId: 196000512

6 years agoIncrease the shard count of tensorflow/python/keras:wrappers_test to avoid flaky...
A. Unique TensorFlower [Wed, 9 May 2018 18:11:32 +0000 (11:11 -0700)]
Increase the shard count of tensorflow/python/keras:wrappers_test to avoid flaky timeouts

PiperOrigin-RevId: 195998578

6 years agoAvoid rebuilding the graph for every run.
Jacques Pienaar [Wed, 9 May 2018 18:06:45 +0000 (11:06 -0700)]
Avoid rebuilding the graph for every run.

* Use placeholder to avoid building the graph for every run in testIf.
* Update file comment.

PiperOrigin-RevId: 195997713

6 years agoTest tensorflow/contrib/timeseries/python/timeseries:estimators_test only in opt...
A. Unique TensorFlower [Wed, 9 May 2018 17:47:06 +0000 (10:47 -0700)]
Test tensorflow/contrib/timeseries/python/timeseries:estimators_test only in opt mode to avoid flaky timeouts

PiperOrigin-RevId: 195993828

6 years agoFix a bug of literal prints in hlo_graph_dumper
A. Unique TensorFlower [Wed, 9 May 2018 17:38:18 +0000 (10:38 -0700)]
Fix a bug of literal prints in hlo_graph_dumper
Sigterm was raised when no literal info is associated with constant instructions in HloProto.

PiperOrigin-RevId: 195992305

6 years agoFix bug in handling of SAVERS collection for shutdown hook.
Russell Power [Wed, 9 May 2018 17:23:15 +0000 (10:23 -0700)]
Fix bug in handling of SAVERS collection for shutdown hook.

PiperOrigin-RevId: 195989954

6 years ago[Functions] Fix unbounded memory growth in FunctionLibraryRuntime.
Derek Murray [Wed, 9 May 2018 16:42:18 +0000 (09:42 -0700)]
[Functions] Fix unbounded memory growth in FunctionLibraryRuntime.

A recent change modified the behavior of `FunctionLibraryRuntimeImpl::ReleaseHandle()`
so that it no longer freed the memory associated with an instantiated function. Since
we rely on instantiating and releasing a potentially large number of instances of the
same function in tf.data to isolate the (e.g. random number generator) state in each
instance, this change meant that the memory consumption could grow without bound in
a simple program like:

```python

  ds = tf.data.Dataset.from_tensors(0).repeat(None)

  # The function `lambda y: y + 1` would be instantiated for each element in the input.
  ds = ds.flat_map(lambda x: tf.data.Dataset.from_tensors(x).map(
    lambda y: y + tf.random_uniform([], minval=0, maxval=10, dtype=tf.int32)))

  iterator = ds.make_one_shot_iterator()
  next_elem = iterator.get_next()

  with tf.Session() as sess:
    while True:
      sess.run(next_elem)
```

PiperOrigin-RevId: 195983977

6 years agoAdds _DefinedFunction.stateful_ops.
A. Unique TensorFlower [Wed, 9 May 2018 16:05:59 +0000 (09:05 -0700)]
Adds _DefinedFunction.stateful_ops.

PiperOrigin-RevId: 195979035

6 years agoAdd a few CHECKs here and there.
A. Unique TensorFlower [Wed, 9 May 2018 15:33:33 +0000 (08:33 -0700)]
Add a few CHECKs here and there.

PiperOrigin-RevId: 195974944

6 years agoAutomated g4 rollback of changelist 195120627
Peter Hawkins [Wed, 9 May 2018 14:27:30 +0000 (07:27 -0700)]
Automated g4 rollback of changelist 195120627

PiperOrigin-RevId: 195966744

6 years agoRun test tensorflow/python/kernel_tests:array_ops_test only when optimizing to avoid...
A. Unique TensorFlower [Wed, 9 May 2018 12:22:36 +0000 (05:22 -0700)]
Run test tensorflow/python/kernel_tests:array_ops_test only when optimizing to avoid flaky timeouts

PiperOrigin-RevId: 195955576

6 years agoUnifying argument documentation style in CudnnSupport.
A. Unique TensorFlower [Wed, 9 May 2018 05:57:35 +0000 (22:57 -0700)]
Unifying argument documentation style in CudnnSupport.

PiperOrigin-RevId: 195926489

6 years agoImplementation of Slice.
A. Unique TensorFlower [Wed, 9 May 2018 05:49:20 +0000 (22:49 -0700)]
Implementation of Slice.

PiperOrigin-RevId: 195926057

6 years agoDelete old op gen code and replace with eager op gen.
Akshay Modi [Wed, 9 May 2018 01:36:32 +0000 (18:36 -0700)]
Delete old op gen code and replace with eager op gen.

PiperOrigin-RevId: 195909821

6 years ago[XLA] Make XlaAllocator obey retry_on_failure arg.
Justin Lebar [Wed, 9 May 2018 01:16:47 +0000 (18:16 -0700)]
[XLA] Make XlaAllocator obey retry_on_failure arg.

Previously we ignored it.

PiperOrigin-RevId: 195908178

6 years ago[XLA:GPU] Disable multi-streaming by default.
Justin Lebar [Wed, 9 May 2018 00:29:01 +0000 (17:29 -0700)]
[XLA:GPU] Disable multi-streaming by default.

Run all GPU work on one stream by default.  We've found experimentally
that multi-streaming creates significant additional memory pressure on
some models, and we don't have any good benchmarks where multi-streaming
helps on which to tune the stream-assignment heuristics.  So just
disable it for now.

PiperOrigin-RevId: 195903229

6 years agoInclude tensorflow::DataType header file
Akshay Modi [Wed, 9 May 2018 00:27:33 +0000 (17:27 -0700)]
Include tensorflow::DataType header file

PiperOrigin-RevId: 195903041

6 years agoAdd two helper methods to the graphcycle class.
Tony Wang [Wed, 9 May 2018 00:24:02 +0000 (17:24 -0700)]
Add two helper methods to the graphcycle class.

PiperOrigin-RevId: 195902659

6 years agoFix a dropped line in the DepthwiseConv2dNative model
A. Unique TensorFlower [Wed, 9 May 2018 00:04:00 +0000 (17:04 -0700)]
Fix a dropped line in the DepthwiseConv2dNative model

PiperOrigin-RevId: 195900021

6 years agoSkip convert_to_tensor in r_binary_op_wrapper in eager mode.
Akshay Modi [Wed, 9 May 2018 00:03:10 +0000 (17:03 -0700)]
Skip convert_to_tensor in r_binary_op_wrapper in eager mode.

Should fallback from C if its not convertible.

PiperOrigin-RevId: 195899829

6 years agoMake eager functions runable on TPU
Igor Ganichev [Tue, 8 May 2018 23:43:54 +0000 (16:43 -0700)]
Make eager functions runable on TPU

PiperOrigin-RevId: 195897321

6 years agoSet size of tensorflow/python/keras:normalization_test to medium to avoid flaky timeouts
A. Unique TensorFlower [Tue, 8 May 2018 23:23:27 +0000 (16:23 -0700)]
Set size of tensorflow/python/keras:normalization_test to medium to avoid flaky timeouts

PiperOrigin-RevId: 195894737

6 years agoOnly use integer values for event_ndims.
A. Unique TensorFlower [Tue, 8 May 2018 23:20:02 +0000 (16:20 -0700)]
Only use integer values for event_ndims.

event_ndims have the semantics of being an integer. However, other code paths (such as const_value)
can return back numpy wrapped arrays, which can mess with how values are cached. Instead extract
everything as an integer.

PiperOrigin-RevId: 195894216

6 years agoadd test for pruning useless function lib in graph.
A. Unique TensorFlower [Tue, 8 May 2018 23:16:57 +0000 (16:16 -0700)]
add test for pruning useless function lib in graph.

PiperOrigin-RevId: 195893756

6 years agoAdd test to test suite.
A. Unique TensorFlower [Tue, 8 May 2018 22:43:34 +0000 (15:43 -0700)]
Add test to test suite.

PiperOrigin-RevId: 195888932

6 years agoIncrease shard count of tensorflow/contrib/learn:state_saving_rnn_estimator_test...
A. Unique TensorFlower [Tue, 8 May 2018 22:34:40 +0000 (15:34 -0700)]
Increase shard count of tensorflow/contrib/learn:state_saving_rnn_estimator_test to avoid flaky timeouts

PiperOrigin-RevId: 195887546

6 years agoIncrease size of tensorflow/contrib/distributions:batch_reshape_test to medium to...
A. Unique TensorFlower [Tue, 8 May 2018 22:33:37 +0000 (15:33 -0700)]
Increase size of tensorflow/contrib/distributions:batch_reshape_test to medium to avoid flaky timeouts

PiperOrigin-RevId: 195887374

6 years agoIncrease shard count of tensorflow/python/keras:lstm_test to avoid flaky timeouts
A. Unique TensorFlower [Tue, 8 May 2018 22:26:44 +0000 (15:26 -0700)]
Increase shard count of tensorflow/python/keras:lstm_test to avoid flaky timeouts

PiperOrigin-RevId: 195886372

6 years agoAdd missing ":haswell" match to list of platform selectors.
A. Unique TensorFlower [Tue, 8 May 2018 21:50:24 +0000 (14:50 -0700)]
Add missing ":haswell" match to list of platform selectors.

PiperOrigin-RevId: 195880275

6 years agoIncrease shard_count of tensorflow/python/estimator:estimator_test to avoid flaky...
A. Unique TensorFlower [Tue, 8 May 2018 21:45:01 +0000 (14:45 -0700)]
Increase shard_count of tensorflow/python/estimator:estimator_test to avoid flaky asan timeouts

PiperOrigin-RevId: 195879364

6 years agoDo not differentiage integers in the eager API.
Alexandre Passos [Tue, 8 May 2018 21:42:35 +0000 (14:42 -0700)]
Do not differentiage integers in the eager API.

This is similar to the change made in:
https://github.com/tensorflow/tensorflow/commit/f63750645826df65b05cad505546a86f0e347674
for backpropagation during graph construction via tf.gradients()

PiperOrigin-RevId: 195878952

6 years agoIncrease shard count of tensorflow/contrib/distributions:mixture_test to avoid flaky...
A. Unique TensorFlower [Tue, 8 May 2018 21:41:48 +0000 (14:41 -0700)]
Increase shard count of tensorflow/contrib/distributions:mixture_test to avoid flaky timeouts in asan mode

PiperOrigin-RevId: 195878809

6 years agoIncrease size of test tensorflow/contrib/layers:rev_block_lib_test to medium
A. Unique TensorFlower [Tue, 8 May 2018 21:00:48 +0000 (14:00 -0700)]
Increase size of test tensorflow/contrib/layers:rev_block_lib_test to medium
to avoid flaky timeouts.

PiperOrigin-RevId: 195871947

6 years agoAvoid string formatting in assert_same_float_dtype unless there's an error
Allen Lavoie [Tue, 8 May 2018 21:00:30 +0000 (14:00 -0700)]
Avoid string formatting in assert_same_float_dtype unless there's an error

Especially helpful when executing eagerly

PiperOrigin-RevId: 195871887

6 years agoBetter wrapping of stream executor's cuDNN API calls. Replacing mutex locking and...
A. Unique TensorFlower [Tue, 8 May 2018 19:10:36 +0000 (12:10 -0700)]
Better wrapping of stream executor's cuDNN API calls. Replacing mutex locking and setting the cuDNN stream followed by calling wrap::cudnn... with an RAII CudnnHandle object that handles the former two operations.

Distinguish three different API types:

A) APIs that don't take a cudnnHandle_t: These are thread-safe APIs that don't enqueue any CUDA work on a stream. They can be called directly without any extra precautions.

B) APIs that take a cudnnHandle_t and perform CUDA work. The CUDA context needs to be acquired and the stream needs to be set beforehand, calls need to be serialized. A CudnnHandle instance guarantees that this work has been performed before calling cuDNN.

C) APIs that do take a cudnnHandle_t, but (presumably, the API makes no guarantees) still don't perform any CUDA work. This is limited to the API to setup RNN descriptors. Calls need to be serialized, but most likely we wouldn't need to acquire the CUDA context or set the stream. We still do though using the legacy default stream, because there are no guarantees.

PiperOrigin-RevId: 195856300

6 years agoRemove outdated CUDA SDK string (the text is now consistent with other version choice...
A. Unique TensorFlower [Tue, 8 May 2018 19:04:38 +0000 (12:04 -0700)]
Remove outdated CUDA SDK string (the text is now consistent with other version choices, and the '9.0' format is already present in the default).

PiperOrigin-RevId: 195855416

6 years agoRe-land: Optimize dot(DynamicSlice(ConstA), ConstantB) by memoizing dot(ConstA, ConstB)
Alina Sbirlea [Tue, 8 May 2018 18:54:03 +0000 (11:54 -0700)]
Re-land: Optimize dot(DynamicSlice(ConstA), ConstantB) by memoizing dot(ConstA, ConstB)

Make transformation when ConstA and ConstB are 2D, and DynamicSlice is slicing a full row, column respectively.
Handle:
dot(DynamicSlice(Index, ConstA), ConstB) => DynamicSlice(Index, dot*(ConstA, ConstB));
and
dot(ConstA, DynamicSlice(Index, ConstB)) => DynamicSlice(Index, dot*(ConstA, ConstB));

Reason to roll forward: Previous issue of getting out of memory errors when generating LLVM constants was resolved by CSE-ing constants before allocation.

PiperOrigin-RevId: 195853680

6 years agoFix docstring for flush() method
A. Unique TensorFlower [Tue, 8 May 2018 18:45:53 +0000 (11:45 -0700)]
Fix docstring for flush() method

PiperOrigin-RevId: 195852402

6 years agoUpdate version of downloadable clang toolchain
Ilya Biryukov [Tue, 8 May 2018 18:25:50 +0000 (11:25 -0700)]
Update version of downloadable clang toolchain

PiperOrigin-RevId: 195849091

6 years agoChange visibility of hlo_proto.
A. Unique TensorFlower [Tue, 8 May 2018 18:19:46 +0000 (11:19 -0700)]
Change visibility of hlo_proto.

PiperOrigin-RevId: 195848035

6 years agoAdd affinity binding functionality and documentation to OVIC benchmarker.
A. Unique TensorFlower [Tue, 8 May 2018 18:15:53 +0000 (11:15 -0700)]
Add affinity binding functionality and documentation to OVIC benchmarker.

PiperOrigin-RevId: 195847378

6 years agoIncrease size of test //third_party/tensorflow/python:saver_large_variable_test
A. Unique TensorFlower [Tue, 8 May 2018 18:12:07 +0000 (11:12 -0700)]
Increase size of test //third_party/tensorflow/python:saver_large_variable_test
from "small" to "medium" to prevent flaky timeouts.

PiperOrigin-RevId: 195846802

6 years agoFix Raspberry Pi build by making PNG not try to use Neon (by autodetect).
Andrew Selle [Tue, 8 May 2018 18:10:23 +0000 (11:10 -0700)]
Fix Raspberry Pi build by making PNG not try to use Neon (by autodetect).

This involves patching to override the png neon option. In the future
it might be worth enabling PNG optimization.

PiperOrigin-RevId: 195846513

6 years agoWhen building functions, capture tensors in `internal_convert_to_tensor`.
Akshay Agrawal [Tue, 8 May 2018 18:07:45 +0000 (11:07 -0700)]
When building functions, capture tensors in `internal_convert_to_tensor`.

This change is motivated by the fact that, when eager execution is disabled, library functions assume that tensors returned from `internal_convert_to_tensor` are in fact `Tensor`s and not `EagerTensor`s.

PiperOrigin-RevId: 195846039

6 years agoAdd cost model of depthwiseConv2dNative. Tensorflow computes depthwise separable...
A. Unique TensorFlower [Tue, 8 May 2018 17:25:30 +0000 (10:25 -0700)]
Add cost model of depthwiseConv2dNative. Tensorflow computes depthwise separable convolutions as depthwiseConv2dNative followed by 1x1 Conv2D

PiperOrigin-RevId: 195838887

6 years agoFree ANeuralNetworksCompilation object in NNAPIDelegate destructor
A. Unique TensorFlower [Tue, 8 May 2018 16:46:45 +0000 (09:46 -0700)]
Free ANeuralNetworksCompilation object in NNAPIDelegate destructor

PiperOrigin-RevId: 195832807

6 years agoMinor formatting tweaks to distribute.py and simple_tfkeras_example.py
Shanqing Cai [Tue, 8 May 2018 16:04:17 +0000 (09:04 -0700)]
Minor formatting tweaks to distribute.py and simple_tfkeras_example.py

PiperOrigin-RevId: 195827029

6 years agoUpdate comment clarifying continuous eval behavior.
A. Unique TensorFlower [Tue, 8 May 2018 15:57:45 +0000 (08:57 -0700)]
Update comment clarifying continuous eval behavior.

PiperOrigin-RevId: 195826025

6 years ago[TF:XLA] Fix NaN in StatelessRandomNormal if the underlying uniform distribution...
Peter Hawkins [Tue, 8 May 2018 15:07:08 +0000 (08:07 -0700)]
[TF:XLA] Fix NaN in StatelessRandomNormal if the underlying uniform distribution returned -1.

PiperOrigin-RevId: 195819645

6 years agoAutomated g4 rollback of changelist 195723288
A. Unique TensorFlower [Tue, 8 May 2018 15:04:07 +0000 (08:04 -0700)]
Automated g4 rollback of changelist 195723288

PiperOrigin-RevId: 195819297

6 years agoAdd missing #include for OpResponse. This class currently happens to be forward
A. Unique TensorFlower [Tue, 8 May 2018 14:57:12 +0000 (07:57 -0700)]
Add missing #include for OpResponse. This class currently happens to be forward
declared by xla.proto.h, but that proto doesn't actually need this type
anywhere and we are working on removing such unneeded forward declarations.

PiperOrigin-RevId: 195818397

6 years agoProfileHandler: Remove unnecessary interface method.
Asim Shankar [Tue, 8 May 2018 14:28:43 +0000 (07:28 -0700)]
ProfileHandler: Remove unnecessary interface method.
PiperOrigin-RevId: 195815565

6 years agoFix a test expectation.
A. Unique TensorFlower [Tue, 8 May 2018 10:26:06 +0000 (03:26 -0700)]
Fix a test expectation.

PiperOrigin-RevId: 195796348

6 years agoAutomated g4 rollback of changelist 195748721
A. Unique TensorFlower [Tue, 8 May 2018 09:11:52 +0000 (02:11 -0700)]
Automated g4 rollback of changelist 195748721

PiperOrigin-RevId: 195790581

6 years agoTemporarily disable concat rewrite.
A. Unique TensorFlower [Tue, 8 May 2018 02:56:26 +0000 (19:56 -0700)]
Temporarily disable concat rewrite.

PiperOrigin-RevId: 195762860

6 years ago[tf.data] Move tensorflow::dataset::MakeIteratorContext to core/framework
Brennan Saeta [Tue, 8 May 2018 01:31:47 +0000 (18:31 -0700)]
[tf.data] Move tensorflow::dataset::MakeIteratorContext to core/framework

PiperOrigin-RevId: 195756342

6 years agoAdd logic for StridedSlice ops in ShapeRefiner::ConstantPartialShape().
Skye Wanderman-Milne [Tue, 8 May 2018 00:28:41 +0000 (17:28 -0700)]
Add logic for StridedSlice ops in ShapeRefiner::ConstantPartialShape().

This mimics the logic in tensor_util.constant_value_as_shape, allowing
the C++ shape inference code to infer more shapes than it could before.

This change also adds an optional stride argument to InferenceContext::Subshape().

PiperOrigin-RevId: 195749522

6 years agoMake conv2d_tranpose_test.py work with C API shapes enabled.
Skye Wanderman-Milne [Tue, 8 May 2018 00:24:28 +0000 (17:24 -0700)]
Make conv2d_tranpose_test.py work with C API shapes enabled.

The C API provides more accurate shape information in many cases.

PiperOrigin-RevId: 195749030

6 years agoMake eager functions runable on TPU
Igor Ganichev [Tue, 8 May 2018 00:21:53 +0000 (17:21 -0700)]
Make eager functions runable on TPU

PiperOrigin-RevId: 195748721

6 years agoRaise an error if we try to take the gradient wrt to the initial value of a loop...
Skye Wanderman-Milne [Tue, 8 May 2018 00:21:39 +0000 (17:21 -0700)]
Raise an error if we try to take the gradient wrt to the initial value of a loop variable.

Fixes #14101

PiperOrigin-RevId: 195748688

6 years agoInternal change
Blake Hechtman [Tue, 8 May 2018 00:00:27 +0000 (17:00 -0700)]
Internal change

PiperOrigin-RevId: 195745819

6 years agoAdd test with tf.cond.
Jacques Pienaar [Mon, 7 May 2018 23:59:41 +0000 (16:59 -0700)]
Add test with tf.cond.

PiperOrigin-RevId: 195745718

6 years agoDelete kTransposeDot (it is no longer in use)
Sanjoy Das [Mon, 7 May 2018 23:55:10 +0000 (16:55 -0700)]
Delete kTransposeDot (it is no longer in use)

PiperOrigin-RevId: 195745124

6 years agoFast-path to VarHandleOp
Alexandre Passos [Mon, 7 May 2018 23:49:44 +0000 (16:49 -0700)]
Fast-path to VarHandleOp

PiperOrigin-RevId: 195744374

6 years agoAdd TFX section. Add Ecosystem page and dropdown menu.
Billy Lamberta [Mon, 7 May 2018 23:38:02 +0000 (16:38 -0700)]
Add TFX section. Add Ecosystem page and dropdown menu.

PiperOrigin-RevId: 195742728

6 years agoReorder executor NodeItem variable length data section so
A. Unique TensorFlower [Mon, 7 May 2018 23:31:07 +0000 (16:31 -0700)]
Reorder executor NodeItem variable length data section so
that all multi-byte aligned types precede all byte-aligned
types so that alignment is satisfied without padding.

PiperOrigin-RevId: 195741712

6 years agoShapeRefiner fix: some variant-type tensors have handle data.
Skye Wanderman-Milne [Mon, 7 May 2018 23:16:32 +0000 (16:16 -0700)]
ShapeRefiner fix: some variant-type tensors have handle data.

ShapeRefiner::AddNode() would only propagate handle data for
DT_RESOURCE tensors, but not DT_VARIANT. The Python shape inference
logic in common_shapes.py handled this correct, which is why we didn't
notice this earlier. In particular, list ops use DT_VARIANT with
handle data.
PiperOrigin-RevId: 195739586

6 years agoRefactor TensorArray to avoid copies and memory allocations when executing eagerly.
Akshay Agrawal [Mon, 7 May 2018 23:16:24 +0000 (16:16 -0700)]
Refactor TensorArray to avoid copies and memory allocations when executing eagerly.

With this change, writes to TensorArrays when eager execution is enabled take O(1) time instead of O(n). Additionally, whereas writing to a TensorArray when constructing a graph results in allocating a new Python TensorArray object, writing to a TensorArray with eager enabled no longer performs that allocation (graph construction uses these allocations to ensure correctness of control flow and gradients, but this isn't necessary when executing eagerly). Finally, this change also removes the artificial write-once semantics of TensorArrays when executing eagerly.

PiperOrigin-RevId: 195739572

6 years ago[XLA] Make post order a possible schedule as it sometimes uses less memory than
Blake Hechtman [Mon, 7 May 2018 22:58:29 +0000 (15:58 -0700)]
[XLA] Make post order a possible schedule as it sometimes uses less memory than
the DFS or list scheduler and it is very simple.

PiperOrigin-RevId: 195736916

6 years ago[Remote functions] Only set the default runner *after* resolving the remote FLR.
Derek Murray [Mon, 7 May 2018 22:51:05 +0000 (15:51 -0700)]
[Remote functions] Only set the default runner *after* resolving the remote FLR.

Previously, if the `runner` was not specified for a function
execution, we would immediately set it to the default runner of the
*local* FLR, even if the function was to be executed remotely. This
change postpones the resolution of the default runner until after the
function invocation has been routed to the FLR that will actually
execute it.

As a result, we avoid the pathological case where a GPU device using a
private threadpool (TF_GPU_THREAD_MODE=gpu_private) ends up running
all of the ops for the CPU-side input pipeline on the private
threadpool.

PiperOrigin-RevId: 195735734

6 years agoAdd EvaluateNodes to tests: RemoveIdentityTransposesMultipleOutputs, RemoveTransposes...
A. Unique TensorFlower [Mon, 7 May 2018 22:47:57 +0000 (15:47 -0700)]
Add EvaluateNodes to tests: RemoveIdentityTransposesMultipleOutputs, RemoveTransposesWithControlDependency, CombineBitcasts, CombineAndRemoveBitcasts, RemoveRedundantCast

PiperOrigin-RevId: 195735234

6 years ago[XLA] Fix a "we're we're" in the operation semantics.
Michael Kuperstein [Mon, 7 May 2018 22:41:52 +0000 (15:41 -0700)]
[XLA] Fix a "we're we're" in the operation semantics.

PiperOrigin-RevId: 195734316

6 years agoAdd support for select (via tf.where) support to tflite.
A. Unique TensorFlower [Mon, 7 May 2018 22:41:22 +0000 (15:41 -0700)]
Add support for select (via tf.where) support to tflite.

PiperOrigin-RevId: 195734246

6 years agoInternal Change.
Michael Case [Mon, 7 May 2018 22:24:02 +0000 (15:24 -0700)]
Internal Change.

PiperOrigin-RevId: 195731675

6 years agoFix TypeError in update_version.py
Michael Case [Mon, 7 May 2018 22:20:49 +0000 (15:20 -0700)]
Fix TypeError in update_version.py

PiperOrigin-RevId: 195731183

6 years agoAdd support for tf.data.Dataset iterators in model training/eval methods in eager...
Pavithra Vijay [Mon, 7 May 2018 22:16:59 +0000 (15:16 -0700)]
Add support for tf.data.Dataset iterators in model training/eval methods in eager-mode

PiperOrigin-RevId: 195730534

6 years agoReplace references to TensorInfo with XlaTensor
Igor Ganichev [Mon, 7 May 2018 22:15:01 +0000 (15:15 -0700)]
Replace references to TensorInfo with XlaTensor

PiperOrigin-RevId: 195730139

6 years agoDisable automated testing of tensorflow/compiler/tests:extract_image_patches_op_test_...
A. Unique TensorFlower [Mon, 7 May 2018 21:55:26 +0000 (14:55 -0700)]
Disable automated testing of tensorflow/compiler/tests:extract_image_patches_op_test_cpu_ondemand

A recent change has made this test flaky.

PiperOrigin-RevId: 195726647