Yong Tang [Sat, 24 Feb 2018 02:44:13 +0000 (02:44 +0000)]
Update api_def for UniqueWithCounts/UniqueWithCountsV2
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Yong Tang [Sat, 27 Jan 2018 19:58:54 +0000 (19:58 +0000)]
Add test cases for unique_with_counts_v2
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Yong Tang [Sat, 27 Jan 2018 19:57:38 +0000 (19:57 +0000)]
Add python wrapper for unique_with_counts
to call gen_array_ops._unique_with_counts
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Yong Tang [Sat, 27 Jan 2018 19:56:33 +0000 (19:56 +0000)]
Hide UniqueWithCounts and UniqueWithCountsV2 in hidden_ops.txt
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Yong Tang [Sat, 27 Jan 2018 19:48:35 +0000 (19:48 +0000)]
Enable multi-dimensional and axis support for tf.unique_with_counts
This fix tries to address the issue raised in 16499 to bring
multi-dimensional and axis support for `unique_with_counts`.
When `UniqueV2` kernel was added in 12952, it actually supports
multi-dimensional and axis support for `unique_with_counts` as well,
just not registered.
This fix:
1. Register `UniqueWithCountsV2` kernel to have axis support.
2. Hide both `UniqueWithCounts` and `UniqueWithCountsV2`
3. Add python unique_with_counts wrapper to call `gen_array_ops._unique_with_counts`
4. If APi review passes and the PR merges, `unique_with_counts` will switch to `gen_array_ops._unique_with_counts_v2` (in 3 weeks).
This fix fixes 16499.
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Allen Lavoie [Sat, 24 Feb 2018 01:05:24 +0000 (17:05 -0800)]
Merge pull request #17134 from tensorflow/timeseries-head
TFTS: Enhancements to timeseries head
ekelsen [Fri, 23 Feb 2018 22:41:06 +0000 (14:41 -0800)]
Merge pull request #17148 from halhorn/beam_search_decoder_for_float16
fix: Error on we feed float16 values into BeamSearchDecoder
ekelsen [Fri, 23 Feb 2018 22:40:50 +0000 (14:40 -0800)]
Merge pull request #17152 from facaiy/BLD/ci_allow_bad_user_name
docker ci allows bad name user
ekelsen [Fri, 23 Feb 2018 22:40:21 +0000 (14:40 -0800)]
Merge pull request #17224 from cclauss/patch-1
TF Lite: from six.moves import xrange for Python 3
ekelsen [Fri, 23 Feb 2018 22:40:06 +0000 (14:40 -0800)]
Merge pull request #17139 from deroneriksson/operation_semantics_typos
Fix typos in Operation Semantics docs
ekelsen [Fri, 23 Feb 2018 21:58:21 +0000 (13:58 -0800)]
Merge pull request #17111 from carlthome/patch-9
Add cast functions for complex64 and complex128
ekelsen [Fri, 23 Feb 2018 21:09:05 +0000 (13:09 -0800)]
Merge pull request #17171 from ilya-biryukov/fix_cuda_compilation
Fix compiler error with cuda-clang
ekelsen [Fri, 23 Feb 2018 21:07:54 +0000 (13:07 -0800)]
Merge pull request #17226 from yifeif/branch_186777369
Branch
186777369
Yifei Feng [Fri, 23 Feb 2018 19:03:14 +0000 (11:03 -0800)]
Remove repeated defination due to auto-merge.
Yifei Feng [Fri, 23 Feb 2018 18:43:24 +0000 (10:43 -0800)]
Merge commit for internal changes
cclauss [Fri, 23 Feb 2018 17:51:28 +0000 (18:51 +0100)]
from six.moves import xrange for Python 3
Lines 1785 and 1818 contain calls to the Python 2-only builtin function __xrange()__ which was removed in Python 3 in favor of __range()__. This PR adds the line [__from six.moves import xrange__](https://pythonhosted.org/six/#module-six.moves) for compatibility with both Python 2 and Python 3.
A. Unique TensorFlower [Fri, 23 Feb 2018 17:15:58 +0000 (09:15 -0800)]
Allow setting of OpMetadata for Send HLOs.
PiperOrigin-RevId:
186777369
A. Unique TensorFlower [Fri, 23 Feb 2018 10:16:32 +0000 (02:16 -0800)]
Let variables initialized from checkpoints answer ".initialized_value()" correctly.
PiperOrigin-RevId:
186741832
Gunhan Gulsoy [Fri, 23 Feb 2018 05:42:51 +0000 (21:42 -0800)]
Merge pull request #17202 from yifeif/branch_186662441
Branch
186662441
Dustin Tran [Fri, 23 Feb 2018 04:02:33 +0000 (20:02 -0800)]
Unify metropolis_hastings interface with HMC kernel.
PiperOrigin-RevId:
186716023
A. Unique TensorFlower [Fri, 23 Feb 2018 03:47:03 +0000 (19:47 -0800)]
Enable constant propagation across Switch(x,x) by rewriting the two outputs as Const(false), Const(true) with appropriate control dependencies. This is a fairly common pattern when the graph contains assertions.
By rewriting the graph a bit, we can propagate the constants down the two output branches, and just use control dependencies to trigger the selected one at runtime. For example,
+------+
x-->|Switch|-->a
x-->| |-->b
+------+
Is rewritten as
+------+
x-->|Switch|-->Identity--^>Const(false)-->a
x-->| |-->Identity--^>Const(true)-->b
+------+
(In practice there may be multiple consumers of each output branch.)
PiperOrigin-RevId:
186714991
A. Unique TensorFlower [Fri, 23 Feb 2018 02:34:32 +0000 (18:34 -0800)]
Pass 'mode' argument to input_fn if appropriate in TPUEstimator.
PiperOrigin-RevId:
186709373
A. Unique TensorFlower [Fri, 23 Feb 2018 02:18:20 +0000 (18:18 -0800)]
Update ops-related pbtxt files.
PiperOrigin-RevId:
186707935
A. Unique TensorFlower [Fri, 23 Feb 2018 02:13:40 +0000 (18:13 -0800)]
[XLA] Add SliceInDim to the local Python XLA client.
[XLA] Revise a comment regarding how the two-argument version of Reshape flattens dimensions (it's first-to-last, not major-to-minor since those terms apply to memory layout rather than logical dimensions, and the comment wasn't consistent about major-to-minor or minor-to-major).
PiperOrigin-RevId:
186707393
A. Unique TensorFlower [Fri, 23 Feb 2018 02:02:04 +0000 (18:02 -0800)]
Add cost estimator tests for the BiasAdd, ReLU, and Conv2D operations.
PiperOrigin-RevId:
186705930
Derek Murray [Fri, 23 Feb 2018 02:01:16 +0000 (18:01 -0800)]
Fix fix Defun logic when returning a value captured from an outer scope.
Previously, the following would fail:
```python
c = tf.constant(...)
@Defun(...)
def Foo(...):
return c
```
The fix involves ensuring that every output of the function is a member of the function graph, and invoking the capturing logic if it is not.
PiperOrigin-RevId:
186705800
A. Unique TensorFlower [Fri, 23 Feb 2018 01:52:58 +0000 (17:52 -0800)]
Turn on strip_default_attrs by default during custom export.
PiperOrigin-RevId:
186704976
A. Unique TensorFlower [Fri, 23 Feb 2018 01:19:49 +0000 (17:19 -0800)]
Moved LIBXSMM convolutions to a separate --define flag so that they are disabled by default.
PiperOrigin-RevId:
186700936
A. Unique TensorFlower [Fri, 23 Feb 2018 00:53:40 +0000 (16:53 -0800)]
LSTM support: Quantized types, quantization params for 16-bit unfused LSTMs.
PiperOrigin-RevId:
186697357
A. Unique TensorFlower [Fri, 23 Feb 2018 00:50:27 +0000 (16:50 -0800)]
Go: Update generated wrapper functions for TensorFlow ops.
PiperOrigin-RevId:
186696903
Andrew Selle [Fri, 23 Feb 2018 00:49:48 +0000 (16:49 -0800)]
Clarify ownership story of TfLiteIntArray* nodes_to_replace
PiperOrigin-RevId:
186696787
Igor Ganichev [Fri, 23 Feb 2018 00:42:55 +0000 (16:42 -0800)]
Support degenerate strided slicing under XLA.
For example, when start, end, and stride are all positive, but `start` is
greater than `end`, tf2xla used to raise an error instead of returning a
tensor with that dimension size being 0. Latter is the regular
tensorflow and python behavior. This change makes XLA behave the same
way.
PiperOrigin-RevId:
186695842
A. Unique TensorFlower [Fri, 23 Feb 2018 00:40:41 +0000 (16:40 -0800)]
Internal change.
PiperOrigin-RevId:
186695534
Kay Zhu [Fri, 23 Feb 2018 00:40:19 +0000 (16:40 -0800)]
[XLA] Enable most xla/tests for interpreter.
PiperOrigin-RevId:
186695486
Bixia Zheng [Fri, 23 Feb 2018 00:37:30 +0000 (16:37 -0800)]
Add to disabled tests the date they were last ran and failed.
This is to address the comments in cl/
186664459.
PiperOrigin-RevId:
186695081
A. Unique TensorFlower [Fri, 23 Feb 2018 00:34:47 +0000 (16:34 -0800)]
Add integration tests for remote build execution.
PiperOrigin-RevId:
186694734
Eugene Brevdo [Fri, 23 Feb 2018 00:18:34 +0000 (16:18 -0800)]
New Mutex operations for a distributed-happy and Function-less CriticalSection.
Original idea by Alex Passos; impl and cancellation handling by Eugene Brevdo with help from Alex.
PiperOrigin-RevId:
186692306
Max Galkin [Fri, 23 Feb 2018 00:13:00 +0000 (16:13 -0800)]
Add a regression test for virtual_scheduler.
PiperOrigin-RevId:
186691392
A. Unique TensorFlower [Thu, 22 Feb 2018 23:34:50 +0000 (15:34 -0800)]
Implement the logic to parse TensorProto (the tensor value for input or filter shape info) in op_level_cost_estimator.
PiperOrigin-RevId:
186685409
Derek Murray [Thu, 22 Feb 2018 23:06:45 +0000 (15:06 -0800)]
[tf.data] Handle a function-raised OutOfRange error correctly in ParallelMapDataset.
PiperOrigin-RevId:
186680982
Yifei Feng [Thu, 22 Feb 2018 22:24:57 +0000 (14:24 -0800)]
Merge changes from github.
PiperOrigin-RevId:
186674197
Jeremy Lau [Thu, 22 Feb 2018 22:20:35 +0000 (14:20 -0800)]
Internal change.
PiperOrigin-RevId:
186673561
A. Unique TensorFlower [Thu, 22 Feb 2018 21:54:25 +0000 (13:54 -0800)]
Adds support for identifying dilated convolution emulation.
Dilated convolution can be emulated by a chain of SpaceToBatchND -> Conv2D -> BatchtoSpaceND. This change adds a graph transformation that identifies this pattern, and variations of it, and substitutes a true dilated convolution instead.
PiperOrigin-RevId:
186669260
Jacques Pienaar [Thu, 22 Feb 2018 21:43:57 +0000 (13:43 -0800)]
Enable int64 outfeed.
PiperOrigin-RevId:
186667574
Bixia Zheng [Thu, 22 Feb 2018 21:23:47 +0000 (13:23 -0800)]
[XLA] Enable F16 convolution test for CPU.
Remove TODO(b/
72509305) as the issue has been fixed.
PiperOrigin-RevId:
186664459
Yifei Feng [Thu, 22 Feb 2018 21:24:35 +0000 (13:24 -0800)]
Merge commit for internal changes
A. Unique TensorFlower [Thu, 22 Feb 2018 21:09:53 +0000 (13:09 -0800)]
Add min_check_interval_secs with 5s as default to ValidationMonitor to avoid checking for existance of a new checkpoint overly frequent that can lead to severe performance issues on remote filesystems.
PiperOrigin-RevId:
186662441
Max Galkin [Thu, 22 Feb 2018 21:04:13 +0000 (13:04 -0800)]
Relax one of the error conditions to allow modeling graphs without explicit set of feed nodes.
PiperOrigin-RevId:
186661729
Allen Lavoie [Thu, 22 Feb 2018 20:53:25 +0000 (12:53 -0800)]
Remove a bit of misleading documentation (we no longer do Graph containers)
PiperOrigin-RevId:
186660057
Jeremy Lau [Thu, 22 Feb 2018 20:45:38 +0000 (12:45 -0800)]
Internal change.
PiperOrigin-RevId:
186658974
Yuanzhong Xu [Thu, 22 Feb 2018 20:27:37 +0000 (12:27 -0800)]
[XLA] HLO BF16 propagation pass.
Using BFloat16Support provided by the backend to determine what precision is needed for
each HloInstruction. If the implementation of some HLOs already reduces input precision to BF16, this pass can enable BF16 on more ops without affecting the result.
PiperOrigin-RevId:
186656378
Zhixian Yan [Thu, 22 Feb 2018 20:26:22 +0000 (12:26 -0800)]
Generate example for basic lstm cell in tflite
PiperOrigin-RevId:
186656247
Guangda Lai [Thu, 22 Feb 2018 20:24:22 +0000 (12:24 -0800)]
Fix BaseGPUDevice, let it report the actual memory limit of the allocator. Also added a helper method to reset ProcessState.
PiperOrigin-RevId:
186655996
Seo Sanghyeon [Thu, 22 Feb 2018 20:27:40 +0000 (05:27 +0900)]
Fix typo (#17193)
Benoit Steiner [Thu, 22 Feb 2018 20:18:39 +0000 (12:18 -0800)]
Measure the performance of the original placement to ensure that we preserve it
in case the placer isn't given enough time to find a better solution.
PiperOrigin-RevId:
186655094
Francois Chollet [Thu, 22 Feb 2018 20:16:09 +0000 (12:16 -0800)]
Add eager support for unit tests for most Keras layers.
A few minor layers were left out:
- noise layers (apparent issue with tf.random_normal)
- bidirectional wrapper
- conv recurrent layers (impending refactor)
PiperOrigin-RevId:
186654795
Allen Lavoie [Thu, 22 Feb 2018 20:01:57 +0000 (12:01 -0800)]
Checkpointable: Re-use the Saver's SaveableObject infrastructure to create
restore ops, cache them.
The basic infrastructure is usable after this CL in graph and eager, but I still need to make a bunch of objects Checkpointable and make some other usability fixes.
Also sets some of the groundwork for feeding and fetching Python values during save/restore (as in, save has a feed dict now; gathering feeds and placeholders from Checkpointable objects is still to do but should be relatively straightforward).
PiperOrigin-RevId:
186652696
Gunhan Gulsoy [Thu, 22 Feb 2018 19:46:05 +0000 (11:46 -0800)]
Update bazel toolchains dependency.
PiperOrigin-RevId:
186650360
A. Unique TensorFlower [Thu, 22 Feb 2018 19:45:57 +0000 (11:45 -0800)]
Add basic support for quantized unfused LSTMs.
PiperOrigin-RevId:
186650338
Peter Hawkins [Thu, 22 Feb 2018 19:34:16 +0000 (11:34 -0800)]
[TF:XLA] Improve readability of HLO graphs when rendered via Tensorboard.
Add operator metadata around the computation arguments and retvals, so they are grouped together.
Teach the batchnorm expander pass to propagate the operator metadata from the original batch norm operators.
PiperOrigin-RevId:
186648547
Guangda Lai [Thu, 22 Feb 2018 19:25:24 +0000 (11:25 -0800)]
Add a test only method to reset ProcessState.
PiperOrigin-RevId:
186647005
A. Unique TensorFlower [Thu, 22 Feb 2018 18:59:57 +0000 (10:59 -0800)]
Change the MomentumOptimzer lambda so it has the same named argument (learning_rate)
as the MomentumOptimzer constructor.
PiperOrigin-RevId:
186642325
Benoit Steiner [Thu, 22 Feb 2018 18:44:19 +0000 (10:44 -0800)]
Added a regression test to make sure we deal with large constants properly
PiperOrigin-RevId:
186639709
A. Unique TensorFlower [Thu, 22 Feb 2018 18:32:59 +0000 (10:32 -0800)]
Change warning message for case where Python detects a colocation that conflicts with a device assignment.
PiperOrigin-RevId:
186637887
Martin Wicke [Thu, 22 Feb 2018 18:14:42 +0000 (10:14 -0800)]
Merge pull request #17058 from rajendraarora16/master
Documentation api reference badge added in Readme.md and added new header for contribution guidelines
A. Unique TensorFlower [Thu, 22 Feb 2018 17:03:00 +0000 (09:03 -0800)]
Update LLVM for API changes in r325725
PiperOrigin-RevId:
186624266
A. Unique TensorFlower [Thu, 22 Feb 2018 16:52:42 +0000 (08:52 -0800)]
Add node name to placer device-placement/kernel-assignment error messages .
PiperOrigin-RevId:
186622923
Jacques Pienaar [Thu, 22 Feb 2018 15:53:38 +0000 (07:53 -0800)]
Add S64 add/subtract test and convert tests.
* Fixed bugs in convert from U32 to S64.
END_PUBLIC
*** Original change description ***
BEGIN_PUBLIC
Automated g4 rollback of changelist
186494344
PiperOrigin-RevId:
186616875
Derek Murray [Thu, 22 Feb 2018 15:25:41 +0000 (07:25 -0800)]
[tf.data] Add experimental ability to override the function threadpool.
The purpose of this feature is to enable experimentation with differentiating
the CPU resources available to different stages of a `tf.data` pipeline. As a
concrete example, we might use the new feature to move all input-related work
from the inter-op threadpool onto a separate threadpool, leaving the inter-op
threadpool free to execute higher priority work (such as dispatching ops that
send tensors to an accelerator). The current implementation only allows users
to create fixed-size `tensorflow::ThreadPool` resources, but we could imagine
opening up this API to allow custom threadpools as well.
PiperOrigin-RevId:
186614315
A. Unique TensorFlower [Thu, 22 Feb 2018 14:48:27 +0000 (06:48 -0800)]
Optionally have persistent make_vjp
PiperOrigin-RevId:
186610572
A. Unique TensorFlower [Thu, 22 Feb 2018 13:30:42 +0000 (05:30 -0800)]
Adapt TensorFlow to LLVM API change from r325725
PiperOrigin-RevId:
186604023
Ilya Biryukov [Thu, 22 Feb 2018 11:11:14 +0000 (03:11 -0800)]
Fix compile errors by patching eigen locally.
PiperOrigin-RevId:
186592198
Gunhan Gulsoy [Thu, 22 Feb 2018 07:33:44 +0000 (23:33 -0800)]
Disable flaky keras:metrics_test.
PiperOrigin-RevId:
186573303
Benoit Steiner [Thu, 22 Feb 2018 06:02:54 +0000 (22:02 -0800)]
Avoid creating large constants since protocol buffers are limited to 2GB in size.
PiperOrigin-RevId:
186567461
Gunhan Gulsoy [Thu, 22 Feb 2018 05:06:54 +0000 (21:06 -0800)]
Disable flaky moving_average test.
PiperOrigin-RevId:
186563841
Benoit Steiner [Thu, 22 Feb 2018 05:05:42 +0000 (21:05 -0800)]
Started to open source the RL placer.
PiperOrigin-RevId:
186563773
Michael Case [Thu, 22 Feb 2018 04:39:21 +0000 (20:39 -0800)]
Make configure script runnable from external workspace. (#17172)
To run from external workspace, you should now be able to invoke
script like the following. This will generate some TensorFlow specfic
bazel options and import them into your project's .bazelrc.
$(bazel info output_base)/external/org_tensorflow/configure.py --workspace=$(PWD)
Martin Pool [Thu, 22 Feb 2018 04:13:38 +0000 (20:13 -0800)]
Fix markdown nit (#17163)
Without a leading blank line, it doesn't render properly in https://www.tensorflow.org/programmers_guide/variables#variable_collections.
Tatiana Shpeisman [Thu, 22 Feb 2018 03:56:00 +0000 (19:56 -0800)]
Deleting test that checks that 2D convolution with NCHW format is not implemented on CPU. The tests fail with MKL because the operation is implemented.
PiperOrigin-RevId:
186558730
Yangzihao Wang [Thu, 22 Feb 2018 01:42:46 +0000 (17:42 -0800)]
Do not set cudnn batch norm persistent mode when doing inference.
PiperOrigin-RevId:
186547439
Sanjoy Das [Thu, 22 Feb 2018 01:36:14 +0000 (17:36 -0800)]
Delete dot_operation_runtime_test -- it is identical to dot_operation_test.
PiperOrigin-RevId:
186546771
Skye Wanderman-Milne [Thu, 22 Feb 2018 01:20:32 +0000 (17:20 -0800)]
Fix control flow bug.
Without this change, the newly added test would fail with a "Reval[0]"
error. This was due to extra Enter nodes being added in the gradients
graph in order to enter the outer while contexts for a value that was
already in those contexts. The extra Enter nodes would cause the
frames of the execution to be messed up, which prevented the final
value from being propagated to the outermost Exit node.
A similar change is probably needed in WhileContext, although I don't
have a test case for this yet.
PiperOrigin-RevId:
186544961
Alexandre Passos [Thu, 22 Feb 2018 01:19:40 +0000 (17:19 -0800)]
Fix subtle race condition in ResourceVariable.is_initialized
PiperOrigin-RevId:
186544846
Michael Kuperstein [Thu, 22 Feb 2018 00:58:47 +0000 (16:58 -0800)]
Add more strided R1 tests.
PiperOrigin-RevId:
186542219
A. Unique TensorFlower [Thu, 22 Feb 2018 00:57:01 +0000 (16:57 -0800)]
Go: Update generated wrapper functions for TensorFlow ops.
PiperOrigin-RevId:
186542037
Blake Hechtman [Thu, 22 Feb 2018 00:39:43 +0000 (16:39 -0800)]
[XLA] Convert large constants of the same value into broadcasts.
PiperOrigin-RevId:
186539902
A. Unique TensorFlower [Thu, 22 Feb 2018 00:24:20 +0000 (16:24 -0800)]
Update ops-related pbtxt files.
PiperOrigin-RevId:
186537602
Derek Murray [Thu, 22 Feb 2018 00:20:27 +0000 (16:20 -0800)]
Fix lint errors and improve docs in fully_connected_reader.py.
PiperOrigin-RevId:
186537109
A. Unique TensorFlower [Thu, 22 Feb 2018 00:03:32 +0000 (16:03 -0800)]
Internal change.
PiperOrigin-RevId:
186534524
A. Unique TensorFlower [Wed, 21 Feb 2018 23:54:54 +0000 (15:54 -0800)]
Move sorting of variables from the implicit_grad family of functions
up to GradientTape.watched_variables() so we also get deterministic
behavior when using the GradientTape as is done in
Optimizer.compute_gradients().
PiperOrigin-RevId:
186533323
Jacques Pienaar [Wed, 21 Feb 2018 23:37:05 +0000 (15:37 -0800)]
Automated g4 rollback of changelist
186494344
PiperOrigin-RevId:
186530782
Derek Murray [Wed, 21 Feb 2018 23:36:55 +0000 (15:36 -0800)]
[tf.data] Move the `tf.contrib.data.unique()` C++ implementation to contrib.
PiperOrigin-RevId:
186530750
Brennan Saeta [Wed, 21 Feb 2018 23:19:47 +0000 (15:19 -0800)]
Internal-only change.
PiperOrigin-RevId:
186528023
Yifei Feng [Wed, 21 Feb 2018 23:13:03 +0000 (15:13 -0800)]
Disable flaky test tensorflow/contrib/opt:moving_average_optimizer_test
PiperOrigin-RevId:
186527039
Francois Chollet [Wed, 21 Feb 2018 23:12:16 +0000 (15:12 -0800)]
Add the ability to specify an explicit `training` argument when calling a Model (including Sequential).
PiperOrigin-RevId:
186526925
Yifei Feng [Wed, 21 Feb 2018 23:07:05 +0000 (15:07 -0800)]
Don't assign device for the keras part of _saved_first_checkpoint. Fix #14504.
PiperOrigin-RevId:
186526175
Skye Wanderman-Milne [Wed, 21 Feb 2018 22:56:13 +0000 (14:56 -0800)]
Don't require shape functions when creating ops from Python using the C API.
There are many ops out there without shape functions, and it's very
onerous to add UnknownShape to all of them.
PiperOrigin-RevId:
186524294
Derek Murray [Wed, 21 Feb 2018 22:46:29 +0000 (14:46 -0800)]
Mark the `SerializeSparseOp<Variant>` kernel as inexpensive.
Since this op only performs a constant amount of work, and typically
executes in a few microseconds, it should be profitable to execute
this op inline, rather than scheduling it on a remote thread.
PiperOrigin-RevId:
186522885
Akshay Modi [Wed, 21 Feb 2018 22:42:11 +0000 (14:42 -0800)]
Record gradient in C
PiperOrigin-RevId:
186522240
Jianwei Xie [Wed, 21 Feb 2018 22:40:18 +0000 (14:40 -0800)]
Improve error message.
PiperOrigin-RevId:
186521902