Allen Lavoie [Wed, 9 May 2018 22:56:43 +0000 (15:56 -0700)]
Support saving Python state with object-based checkpoints
Allows SaveableObjects to specify feed dict addition callbacks for object-based saving.
For now just saves get_config() with Layers. Doesn't do any loading, and there isn't quite enough information to reconstruct a Model yet (needs topology).
My plan is to get Models to the point where they can be reconstructed from object-based checkpoints (probably one more change), add in SavedModel export (assuming no dynamic control flow for now), then add this "SavedModel+Python" format to Model.save / load_model.
PiperOrigin-RevId:
196043183
A. Unique TensorFlower [Wed, 9 May 2018 22:44:13 +0000 (15:44 -0700)]
Allowing trivial passthrough ops to be turned into reshapes when they otherwise cannot be removed.
PiperOrigin-RevId:
196041444
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
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
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
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
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
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
Anna R [Wed, 9 May 2018 20:55:47 +0000 (13:55 -0700)]
Internal change.
PiperOrigin-RevId:
196024130
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
A. Unique TensorFlower [Wed, 9 May 2018 20:43:14 +0000 (13:43 -0700)]
Adding constant slice op support.
PiperOrigin-RevId:
196021899
Yifei Feng [Wed, 9 May 2018 20:31:31 +0000 (13:31 -0700)]
Internal change.
PiperOrigin-RevId:
196020032
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
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
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
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
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
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
Shivani Agrawal [Wed, 9 May 2018 19:15:11 +0000 (12:15 -0700)]
[tf.data] Saveable iterator for SqlDataset.
PiperOrigin-RevId:
196009176
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
Michael Case [Wed, 9 May 2018 19:05:18 +0000 (12:05 -0700)]
Internal Change.
PiperOrigin-RevId:
196007623
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
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
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
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
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
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
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
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
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
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
A. Unique TensorFlower [Wed, 9 May 2018 16:05:59 +0000 (09:05 -0700)]
Adds _DefinedFunction.stateful_ops.
PiperOrigin-RevId:
195979035
A. Unique TensorFlower [Wed, 9 May 2018 15:33:33 +0000 (08:33 -0700)]
Add a few CHECKs here and there.
PiperOrigin-RevId:
195974944
Peter Hawkins [Wed, 9 May 2018 14:27:30 +0000 (07:27 -0700)]
Automated g4 rollback of changelist
195120627
PiperOrigin-RevId:
195966744
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
A. Unique TensorFlower [Wed, 9 May 2018 05:57:35 +0000 (22:57 -0700)]
Unifying argument documentation style in CudnnSupport.
PiperOrigin-RevId:
195926489
A. Unique TensorFlower [Wed, 9 May 2018 05:49:20 +0000 (22:49 -0700)]
Implementation of Slice.
PiperOrigin-RevId:
195926057
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
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
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
Akshay Modi [Wed, 9 May 2018 00:27:33 +0000 (17:27 -0700)]
Include tensorflow::DataType header file
PiperOrigin-RevId:
195903041
Tony Wang [Wed, 9 May 2018 00:24:02 +0000 (17:24 -0700)]
Add two helper methods to the graphcycle class.
PiperOrigin-RevId:
195902659
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
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
Igor Ganichev [Tue, 8 May 2018 23:43:54 +0000 (16:43 -0700)]
Make eager functions runable on TPU
PiperOrigin-RevId:
195897321
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
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
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
A. Unique TensorFlower [Tue, 8 May 2018 22:43:34 +0000 (15:43 -0700)]
Add test to test suite.
PiperOrigin-RevId:
195888932
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
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
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
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
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
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
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
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
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
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
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
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
A. Unique TensorFlower [Tue, 8 May 2018 18:45:53 +0000 (11:45 -0700)]
Fix docstring for flush() method
PiperOrigin-RevId:
195852402
Ilya Biryukov [Tue, 8 May 2018 18:25:50 +0000 (11:25 -0700)]
Update version of downloadable clang toolchain
PiperOrigin-RevId:
195849091
A. Unique TensorFlower [Tue, 8 May 2018 18:19:46 +0000 (11:19 -0700)]
Change visibility of hlo_proto.
PiperOrigin-RevId:
195848035
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
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
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
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
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
A. Unique TensorFlower [Tue, 8 May 2018 16:46:45 +0000 (09:46 -0700)]
Free ANeuralNetworksCompilation object in NNAPIDelegate destructor
PiperOrigin-RevId:
195832807
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
A. Unique TensorFlower [Tue, 8 May 2018 15:57:45 +0000 (08:57 -0700)]
Update comment clarifying continuous eval behavior.
PiperOrigin-RevId:
195826025
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
A. Unique TensorFlower [Tue, 8 May 2018 15:04:07 +0000 (08:04 -0700)]
Automated g4 rollback of changelist
195723288
PiperOrigin-RevId:
195819297
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
Asim Shankar [Tue, 8 May 2018 14:28:43 +0000 (07:28 -0700)]
ProfileHandler: Remove unnecessary interface method.
PiperOrigin-RevId:
195815565
A. Unique TensorFlower [Tue, 8 May 2018 10:26:06 +0000 (03:26 -0700)]
Fix a test expectation.
PiperOrigin-RevId:
195796348
A. Unique TensorFlower [Tue, 8 May 2018 09:11:52 +0000 (02:11 -0700)]
Automated g4 rollback of changelist
195748721
PiperOrigin-RevId:
195790581
A. Unique TensorFlower [Tue, 8 May 2018 02:56:26 +0000 (19:56 -0700)]
Temporarily disable concat rewrite.
PiperOrigin-RevId:
195762860
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
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
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
Igor Ganichev [Tue, 8 May 2018 00:21:53 +0000 (17:21 -0700)]
Make eager functions runable on TPU
PiperOrigin-RevId:
195748721
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
Blake Hechtman [Tue, 8 May 2018 00:00:27 +0000 (17:00 -0700)]
Internal change
PiperOrigin-RevId:
195745819
Jacques Pienaar [Mon, 7 May 2018 23:59:41 +0000 (16:59 -0700)]
Add test with tf.cond.
PiperOrigin-RevId:
195745718
Sanjoy Das [Mon, 7 May 2018 23:55:10 +0000 (16:55 -0700)]
Delete kTransposeDot (it is no longer in use)
PiperOrigin-RevId:
195745124
Alexandre Passos [Mon, 7 May 2018 23:49:44 +0000 (16:49 -0700)]
Fast-path to VarHandleOp
PiperOrigin-RevId:
195744374
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
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
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
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
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
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
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
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
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
Michael Case [Mon, 7 May 2018 22:24:02 +0000 (15:24 -0700)]
Internal Change.
PiperOrigin-RevId:
195731675
Michael Case [Mon, 7 May 2018 22:20:49 +0000 (15:20 -0700)]
Fix TypeError in update_version.py
PiperOrigin-RevId:
195731183
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