A. Unique TensorFlower [Mon, 26 Mar 2018 23:19:50 +0000 (16:19 -0700)]
Save the last loss reduction method (for future use).
PiperOrigin-RevId:
190543066
Suharsh Sivakumar [Mon, 26 Mar 2018 22:52:12 +0000 (15:52 -0700)]
Rename convert_savedmodel to convert_saved_model
to be consistent with export_saved_model
PiperOrigin-RevId:
190539064
Alexandre Passos [Mon, 26 Mar 2018 22:39:54 +0000 (15:39 -0700)]
Makes tf.gather not silently snapshot resource variables.
PiperOrigin-RevId:
190537320
Mingsheng Hong [Mon, 26 Mar 2018 22:37:40 +0000 (15:37 -0700)]
In the experimental C API, parametrized batch_size for the generate dataset / iterator stack.
PiperOrigin-RevId:
190536945
A. Unique TensorFlower [Mon, 26 Mar 2018 22:34:21 +0000 (15:34 -0700)]
Update recompute_grad for TPU
PiperOrigin-RevId:
190536468
A. Unique TensorFlower [Mon, 26 Mar 2018 22:19:29 +0000 (15:19 -0700)]
[XLA] Redesign: implement and test unary and binary ops.
Also,
- Templatized ComputeAndCompareRX and CreateRXParameter so that they accept XlaBuilder and XlaOp.
- Clear data held by an XlaBuilder when Build() is called, otherwise errors will occur when the builder is reused.
PiperOrigin-RevId:
190534245
A. Unique TensorFlower [Mon, 26 Mar 2018 22:07:10 +0000 (15:07 -0700)]
Fix some compiler warnings in MKL-DNN build.
PiperOrigin-RevId:
190532168
Igor Ganichev [Mon, 26 Mar 2018 21:33:10 +0000 (14:33 -0700)]
Clarify eager gradient doc strings
PiperOrigin-RevId:
190526387
A. Unique TensorFlower [Mon, 26 Mar 2018 21:04:35 +0000 (14:04 -0700)]
Add description of shapes and a pointer to external tutorial notebook in `tf.distributions.Distribution`.
PiperOrigin-RevId:
190521666
A. Unique TensorFlower [Mon, 26 Mar 2018 20:41:35 +0000 (13:41 -0700)]
Quick fix to assign_moving_average documentation formatting.
PiperOrigin-RevId:
190517622
A. Unique TensorFlower [Mon, 26 Mar 2018 20:30:17 +0000 (13:30 -0700)]
Global rename of py2tf to autograph
PiperOrigin-RevId:
190515509
Jiri Simsa [Mon, 26 Mar 2018 20:25:58 +0000 (13:25 -0700)]
Add additional protobuf imports.
PiperOrigin-RevId:
190514839
Anna R [Mon, 26 Mar 2018 20:15:53 +0000 (13:15 -0700)]
Internal change.
PiperOrigin-RevId:
190512928
A. Unique TensorFlower [Mon, 26 Mar 2018 20:11:18 +0000 (13:11 -0700)]
Add header guard to lstm_utils.
PiperOrigin-RevId:
190512302
A. Unique TensorFlower [Mon, 26 Mar 2018 20:08:54 +0000 (13:08 -0700)]
Optimized ops, move code to early, common, section so that it can be shared.
PiperOrigin-RevId:
190511964
Igor Ganichev [Mon, 26 Mar 2018 19:47:47 +0000 (12:47 -0700)]
Clarify doc strings on gradient methods
PiperOrigin-RevId:
190508614
Anna R [Mon, 26 Mar 2018 19:40:56 +0000 (12:40 -0700)]
Internal change.
PiperOrigin-RevId:
190507631
Anna R [Mon, 26 Mar 2018 19:20:32 +0000 (12:20 -0700)]
Internal change.
PiperOrigin-RevId:
190504933
Shanqing Cai [Mon, 26 Mar 2018 19:16:34 +0000 (12:16 -0700)]
tfdbg CLI: Allow node exclusion with tensor filters
Fixes: #16619
See the referred GitHub issue for details, but users want to be
able to skip certain nodes when searching for inf/nans, because
some nodes generate inf/nans even in nominal conditions.
This CL adds a new optional flag `--filter_exclude_node_names`
(or `-fenn` for short), which allows users to do exactly that,
by using a regex for node names.
RELNOTES: tfdbg CLI: Allow exclusion of nodes by regular expressions
during tensor filter-enabled Session runs: see the new flags
`--filter_exclude_node_names` (or `-fenn` for short).
PiperOrigin-RevId:
190504225
A. Unique TensorFlower [Mon, 26 Mar 2018 19:14:05 +0000 (12:14 -0700)]
LSTM support: Support fused activation functions in int16 Add ops.
PiperOrigin-RevId:
190503823
Mingsheng Hong [Mon, 26 Mar 2018 18:50:19 +0000 (11:50 -0700)]
Extended experimental C API with MNIST dataset/iterators support.
PiperOrigin-RevId:
190500020
A. Unique TensorFlower [Mon, 26 Mar 2018 18:47:50 +0000 (11:47 -0700)]
Revert to initializing number of threads when SetNumThreads is called. Requiring it
to happen before OpInit() is way too confusing for users.
PiperOrigin-RevId:
190499644
A. Unique TensorFlower [Mon, 26 Mar 2018 18:44:19 +0000 (11:44 -0700)]
Make the CSE ("node deduping") pass in ArithmeticOptimizer more robust in the presence of ops that modify their inputs in-place: Do not dedup nodes if the underlying buffers for their outputs may be passed to an in-place op.
PiperOrigin-RevId:
190499037
Benoit Steiner [Mon, 26 Mar 2018 18:38:15 +0000 (11:38 -0700)]
Made the NumElements function more accurate
PiperOrigin-RevId:
190497916
Asim Shankar [Mon, 26 Mar 2018 18:18:26 +0000 (11:18 -0700)]
tf.GradientTape: Clearly say that tf.while_loop and tf.cond are not supported
by tf.GradientTape.gradient() at this time.
PiperOrigin-RevId:
190494436
Joshua V. Dillon [Mon, 26 Mar 2018 18:15:37 +0000 (11:15 -0700)]
BUGFIX: Fix failure-to-broadcast in Wishart.sample.
PiperOrigin-RevId:
190493969
A. Unique TensorFlower [Mon, 26 Mar 2018 18:05:37 +0000 (11:05 -0700)]
Fixes an issue with calling tf.contrib.seq2seq.dynamic_decode with an extended BasicDecoder which for example returns a tf.contrib.seq2seq.AttentionWrapperState.
In this case the internal while-loop fails when trying to store an instance tf.contrib.seq2seq.AttentionWrapperState in the internal TensorArray.
PiperOrigin-RevId:
190491787
Rachel Lim [Mon, 26 Mar 2018 17:52:46 +0000 (10:52 -0700)]
[tf.data] Usability improvements to `tf.contrib.data.make_csv_dataset`.
PiperOrigin-RevId:
190489086
Mingsheng Hong [Mon, 26 Mar 2018 17:51:21 +0000 (10:51 -0700)]
Added experimental C APIs to build a stack of dataset + iterator nodes that
reads imagenet TFRecord files.
PiperOrigin-RevId:
190488817
Rohan Jain [Mon, 26 Mar 2018 17:25:46 +0000 (10:25 -0700)]
Adding a FunctionBufferingResourceReset Op that resets the state of the function buffering resource so that we can start using it with re-initializable iterators.
PiperOrigin-RevId:
190484110
A. Unique TensorFlower [Mon, 26 Mar 2018 17:00:20 +0000 (10:00 -0700)]
Automated g4 rollback of changelist
190293303
PiperOrigin-RevId:
190479555
A. Unique TensorFlower [Mon, 26 Mar 2018 15:52:53 +0000 (08:52 -0700)]
Updated test (but not source) of https://tensorflow.org/api_docs/python/tf/contrib/training/HParams to show that it allows '=' in the values.
PiperOrigin-RevId:
190470578
Gunhan Gulsoy [Mon, 26 Mar 2018 05:02:09 +0000 (22:02 -0700)]
Disable flaky prefetching_ops_test.
PiperOrigin-RevId:
190416108
Joshua V. Dillon [Mon, 26 Mar 2018 04:57:09 +0000 (21:57 -0700)]
Always cast `tf.distributions.Distribution` `_event_shape`, `_batch_shape`.
PiperOrigin-RevId:
190415923
Petros Mol [Mon, 26 Mar 2018 03:13:13 +0000 (20:13 -0700)]
Minor Error type and documentation fix.
PiperOrigin-RevId:
190411045
Skye Wanderman-Milne [Mon, 26 Mar 2018 02:35:54 +0000 (19:35 -0700)]
Use compat.as_bytes() instead of str.encode().
PiperOrigin-RevId:
190409217
A. Unique TensorFlower [Sun, 25 Mar 2018 18:51:33 +0000 (11:51 -0700)]
Add skeleton code for DebugStripper.
PiperOrigin-RevId:
190391193
A. Unique TensorFlower [Sun, 25 Mar 2018 16:38:54 +0000 (09:38 -0700)]
Restore dependencies that are needed by the PIP package builder
PiperOrigin-RevId:
190387090
Priya Gupta [Sun, 25 Mar 2018 06:42:08 +0000 (23:42 -0700)]
Build and import rules for distributed strategy
PiperOrigin-RevId:
190367484
Dimitris Vardoulakis [Sat, 24 Mar 2018 07:24:50 +0000 (00:24 -0700)]
Misc typo fixes in the XLA sources and docs.
PiperOrigin-RevId:
190322644
Francois Chollet [Sat, 24 Mar 2018 06:04:03 +0000 (23:04 -0700)]
Trivial update of layer imports in eager execution examples, to reflect recommended practices.
PiperOrigin-RevId:
190319480
A. Unique TensorFlower [Sat, 24 Mar 2018 05:27:31 +0000 (22:27 -0700)]
[XLA] Redesign: implement Reshape and Transpose.
Also,
- Templatize ClientLibraryTestBase::CreateParameterAndTransferLiteral. The implementation is moved from .cc to .h because otherewise the linker complains.
- Migrate some reshape tests to use the XlaBuilder.
PiperOrigin-RevId:
190317960
A. Unique TensorFlower [Sat, 24 Mar 2018 03:20:49 +0000 (20:20 -0700)]
[XLA] Prevent using XlaOp from the wrong XlaBuilder.
PiperOrigin-RevId:
190312254
A. Unique TensorFlower [Sat, 24 Mar 2018 03:18:46 +0000 (20:18 -0700)]
A couple of small device-related utilities.
PiperOrigin-RevId:
190312148
A. Unique TensorFlower [Sat, 24 Mar 2018 02:24:04 +0000 (19:24 -0700)]
Fix loop variable type and status propagation
PiperOrigin-RevId:
190308776
A. Unique TensorFlower [Sat, 24 Mar 2018 02:02:37 +0000 (19:02 -0700)]
Adding support for iterating through a tf.data.Dataset for a single epoch.
PiperOrigin-RevId:
190307545
A. Unique TensorFlower [Sat, 24 Mar 2018 01:44:35 +0000 (18:44 -0700)]
When import_scoped_meta_graph is called within a name scope,
but called without an import_scope, the names of the created
variables are wrong, resulting in key not found errors when
adding these variables to their corresponding collections.
PiperOrigin-RevId:
190306555
A. Unique TensorFlower [Sat, 24 Mar 2018 01:39:29 +0000 (18:39 -0700)]
Switch Android C++ compilation mode to "-std=c++11".
PiperOrigin-RevId:
190306256
A. Unique TensorFlower [Sat, 24 Mar 2018 00:49:47 +0000 (17:49 -0700)]
Go: Update generated wrapper functions for TensorFlow ops.
PiperOrigin-RevId:
190302194
Guangda Lai [Sat, 24 Mar 2018 00:28:10 +0000 (17:28 -0700)]
Set the stream in TransformTensor.
PiperOrigin-RevId:
190300166
A. Unique TensorFlower [Sat, 24 Mar 2018 00:19:10 +0000 (17:19 -0700)]
Update ops-related pbtxt files.
PiperOrigin-RevId:
190299240
Skye Wanderman-Milne [Fri, 23 Mar 2018 23:28:16 +0000 (16:28 -0700)]
Make _USE_C_API = True and _USE_C_SHAPES = False work with handle data.
This change makes _set_shapes_for_outputs_c_api fetch and set
Tensor._handle_data. This is necessary for running the
Python shape inference code on resource tensors.
PiperOrigin-RevId:
190293303
A. Unique TensorFlower [Fri, 23 Mar 2018 23:16:22 +0000 (16:16 -0700)]
bug fix: evaluate nodes before swap the original graph
PiperOrigin-RevId:
190291844
Alexandre Passos [Fri, 23 Mar 2018 23:15:55 +0000 (16:15 -0700)]
Moves TensorHandleCopyToDevice to TensorHandle::CopyToDevice.
PiperOrigin-RevId:
190291768
A. Unique TensorFlower [Fri, 23 Mar 2018 23:13:13 +0000 (16:13 -0700)]
[XLA] Redesign: implement local client and local service interface.
PiperOrigin-RevId:
190291400
A. Unique TensorFlower [Fri, 23 Mar 2018 23:00:14 +0000 (16:00 -0700)]
Extended scatter operations to work with a scalar update parameter and added scatter-min and scatter-max operations.
PiperOrigin-RevId:
190289664
Benjamin Kramer [Fri, 23 Mar 2018 22:52:35 +0000 (15:52 -0700)]
[XLA:CPU] Update calls to IRBuilder::CreateMemCpy to the 2-alignment form.
The single alignment version is going away.
PiperOrigin-RevId:
190288581
David Majnemer [Fri, 23 Mar 2018 22:34:47 +0000 (15:34 -0700)]
[XLA] Don't CSE instructions which have side-effects
PiperOrigin-RevId:
190285774
A. Unique TensorFlower [Fri, 23 Mar 2018 22:33:33 +0000 (15:33 -0700)]
Adding support for analyzing assignment info for nested tuples.
PiperOrigin-RevId:
190285584
A. Unique TensorFlower [Fri, 23 Mar 2018 22:12:35 +0000 (15:12 -0700)]
[TF:XLA] Fix PotentiallyImplementedAsEigenConvolution to use the correct shape as the kernel shape
A small bug is found in accessing the kernel's shape of the convolution instruction in PotentiallyImplementedAsEigenConvolution. The bug was fixed and a new testcase is created to reveal the bug.
PiperOrigin-RevId:
190282385
Allen Lavoie [Fri, 23 Mar 2018 22:12:21 +0000 (15:12 -0700)]
Convert the eager SPINN example to use tf.keras.Model and object-based checkpointing.
Uses a more recursive/functional tracking style which avoids numbering layers. Maybe this is too magical and we should adapt tf.keras.Sequential first? Let me know what you think.
PiperOrigin-RevId:
190282346
A. Unique TensorFlower [Fri, 23 Mar 2018 22:10:56 +0000 (15:10 -0700)]
add EvaluateNodes to OpDedupping test.
PiperOrigin-RevId:
190282163
A. Unique TensorFlower [Fri, 23 Mar 2018 21:52:44 +0000 (14:52 -0700)]
Prepare the XLA and TF code to correctly behave once automatic device placement will be enabled by default on computation shapes > 1.
PiperOrigin-RevId:
190278826
A. Unique TensorFlower [Fri, 23 Mar 2018 21:41:02 +0000 (14:41 -0700)]
Benchmarker for LPIRC CVPR2018.
PiperOrigin-RevId:
190276899
Alexandre Passos [Fri, 23 Mar 2018 21:19:37 +0000 (14:19 -0700)]
Fix buffer overflow when fetching resources.
PiperOrigin-RevId:
190273682
A. Unique TensorFlower [Fri, 23 Mar 2018 21:00:39 +0000 (14:00 -0700)]
Fix behavior of bucket_by_sequence_length with tuple Dataset elements
Fixes #17932
PiperOrigin-RevId:
190270732
A. Unique TensorFlower [Fri, 23 Mar 2018 20:47:03 +0000 (13:47 -0700)]
[XLA] Implement the whole graph execution interface and make a test use XlaBuilder.
- Add Client::ExecuteGraph.
- Make client_library_test_base also (partially) support XlaBuilder by using template.
- Make one testcase in the axpy_simple_test use XlaBuilder. The test was slightly changed because currently the builder does not expend implicit broadcast automatically.
PiperOrigin-RevId:
190268658
Alexandre Passos [Fri, 23 Mar 2018 20:23:35 +0000 (13:23 -0700)]
Moves TensorHandle to common_runtime
PiperOrigin-RevId:
190265301
Nupur Garg [Fri, 23 Mar 2018 20:20:13 +0000 (13:20 -0700)]
Updates reduce_mean op.
PiperOrigin-RevId:
190264873
A. Unique TensorFlower [Fri, 23 Mar 2018 20:15:26 +0000 (13:15 -0700)]
* Added links to Machine Learning Crash Course.
* Removed a link to the script that diagnosed Windows installation errors
because that script is now deprecated.
PiperOrigin-RevId:
190264199
A. Unique TensorFlower [Fri, 23 Mar 2018 19:32:42 +0000 (12:32 -0700)]
[XLA] Redesign: add public methods that create XlaOp.
This is basically copying and pasting the public builder methods from ComputationBuilder and leave the implemention blank.
PiperOrigin-RevId:
190258687
Bixia Zheng [Fri, 23 Mar 2018 19:20:12 +0000 (12:20 -0700)]
[XLA:CPU] Task parallel assignment should not parallelize kRng, kInfeed, and kOutfeed.
Add two test cases.
PiperOrigin-RevId:
190257131
Bixia Zheng [Fri, 23 Mar 2018 19:02:57 +0000 (12:02 -0700)]
[XLA] Allow reshape mover to move transpose across broadcast of a scalar value.
This allows the simplification of pattern "transpose elementwise-ops inversed
transpose" to "elementwise-ops".
Add a test case.
PiperOrigin-RevId:
190254501
Yuanzhong Xu [Fri, 23 Mar 2018 18:41:05 +0000 (11:41 -0700)]
Using rounding when converting constants in BF16 propagation.
PiperOrigin-RevId:
190251081
A. Unique TensorFlower [Fri, 23 Mar 2018 18:27:56 +0000 (11:27 -0700)]
Move NullFileSystem to its own file.
PiperOrigin-RevId:
190249020
Frank Chen [Fri, 23 Mar 2018 18:05:14 +0000 (11:05 -0700)]
Move security documentation to the main TensorFlow site for better visibility, and leave a stub SECURITY.md pointing users there.
PiperOrigin-RevId:
190244853
A. Unique TensorFlower [Fri, 23 Mar 2018 18:02:14 +0000 (11:02 -0700)]
Changes loss_reduction default to SUM_OVER_BATCH_SIZE for multi_label_head.
PiperOrigin-RevId:
190244159
Joshua V. Dillon [Fri, 23 Mar 2018 18:01:25 +0000 (11:01 -0700)]
Override `__str__` and `__repr__` in `tf.distributions.Distribution`.
PiperOrigin-RevId:
190243989
Nupur Garg [Fri, 23 Mar 2018 17:53:49 +0000 (10:53 -0700)]
Adds support for SavedModel to TOCO.
PiperOrigin-RevId:
190242571
A. Unique TensorFlower [Fri, 23 Mar 2018 17:52:57 +0000 (10:52 -0700)]
Slightly tweak the whitelist checking mechanism.
PiperOrigin-RevId:
190242423
Dimitris Vardoulakis [Fri, 23 Mar 2018 17:52:16 +0000 (10:52 -0700)]
Automated g4 rollback of changelist
190139303
PiperOrigin-RevId:
190242291
A. Unique TensorFlower [Fri, 23 Mar 2018 17:34:44 +0000 (10:34 -0700)]
Raise the timeout of tests that are somewhat close to the limit, to avoid them timing out.
PiperOrigin-RevId:
190239334
A. Unique TensorFlower [Fri, 23 Mar 2018 17:28:17 +0000 (10:28 -0700)]
Only run GPU version of memory_optimizer_test.
PiperOrigin-RevId:
190238306
A. Unique TensorFlower [Fri, 23 Mar 2018 17:17:52 +0000 (10:17 -0700)]
Check for the existence of an annotation before attempting to fetch it.
PiperOrigin-RevId:
190236717
Derek Murray [Fri, 23 Mar 2018 17:12:05 +0000 (10:12 -0700)]
Silence compilation warning in allocator.h
Some builds report the following warning (even though LOG(FATAL) is terminal):
```
./tensorflow/core/framework/device_base.h(188): warning: missing return statement at end of non-void function "tensorflow::DeviceBase::GetScopedAllocator"
```
PiperOrigin-RevId:
190235863
A. Unique TensorFlower [Fri, 23 Mar 2018 16:15:58 +0000 (09:15 -0700)]
Merged commit includes the following changes:
190228434 by A. Unique TensorFlower:
internal change only
--
190215102 by A. Unique TensorFlower:
Remove placement strategy from Fisher estimator and add it in as Mixin.
A new Kfac Optimizer sub class which runs covariance and inverse ops periodically. This should deprecate lazykfac.
--
190211603 by A. Unique TensorFlower:
Internal only
--
PiperOrigin-RevId:
190228434
A. Unique TensorFlower [Fri, 23 Mar 2018 12:43:13 +0000 (05:43 -0700)]
Fix HloSharding::ToString to be compatible with the HLO text parser
The incompatibility made it impossible to parse HLO modules with
sharding attributes printed from a previous run of XLA. The previous
format generated by this function was ambigious so changing the HLO
parser only wouldn't be feasible.
PiperOrigin-RevId:
190208069
A. Unique TensorFlower [Fri, 23 Mar 2018 11:41:47 +0000 (04:41 -0700)]
Use int32 GPU kernel for StopGradient
PiperOrigin-RevId:
190204238
A. Unique TensorFlower [Fri, 23 Mar 2018 10:55:03 +0000 (03:55 -0700)]
Implement operator<< for HloSharding
The new operator makes the error messages coming from gtest more
readable as well as making logging easier.
PiperOrigin-RevId:
190200926
A. Unique TensorFlower [Fri, 23 Mar 2018 10:37:05 +0000 (03:37 -0700)]
Internal change
PiperOrigin-RevId:
190199534
A. Unique TensorFlower [Fri, 23 Mar 2018 06:25:37 +0000 (23:25 -0700)]
Enable fusion of element-wise ops using XLA (Off by default, can be enabled by setting the flag tf_xla_fusion_only=true).
PiperOrigin-RevId:
190179459
A. Unique TensorFlower [Fri, 23 Mar 2018 04:46:31 +0000 (21:46 -0700)]
Add cast op support for bfloat16 in CPU.
PiperOrigin-RevId:
190173501
Mingsheng Hong [Fri, 23 Mar 2018 03:51:51 +0000 (20:51 -0700)]
Added experimental C APIs to build a hard-coded stack of dataset + iterator.
PiperOrigin-RevId:
190170332
Suharsh Sivakumar [Fri, 23 Mar 2018 03:40:55 +0000 (20:40 -0700)]
Improvements to quantization matching code:
- Guarantee that we do the largest matches first.
- Don't allow matching layers multiple times.
- Don't allow adding quantization ops to the same node multiple times.
- Return a list of match results rather than yielding. This is much easier to reason about.
- Only require ReadVariableOp when matching resource variables, since the input to ReadVariableOps don't necessarily have to be a VarHandleOp.
- Place post activation bypass ops quantization nodes in the same post activation bypass op's name scope for better viewing.
PiperOrigin-RevId:
190169622
Jonathan Hseu [Fri, 23 Mar 2018 03:32:03 +0000 (20:32 -0700)]
Rollback of GCS change.
END_PUBLIC
BEGIN_PUBLIC
Automated g4 rollback of changelist
189900977
PiperOrigin-RevId:
190169076
Allen Lavoie [Fri, 23 Mar 2018 03:02:45 +0000 (20:02 -0700)]
Checkpointable: Add a way for subclasses to manage deferred restorations of conditional dependencies.
PiperOrigin-RevId:
190166571
Francois Chollet [Fri, 23 Mar 2018 01:59:48 +0000 (18:59 -0700)]
Refactor keras.Sequential and enable building Sequential models without specifying an input shape in advance (the model gets built on fit/etc, like subclassed models).
PiperOrigin-RevId:
190161771
Benoit Steiner [Fri, 23 Mar 2018 01:54:27 +0000 (18:54 -0700)]
Merge changes from github.
PiperOrigin-RevId:
190161440
Derek Murray [Fri, 23 Mar 2018 01:20:09 +0000 (18:20 -0700)]
[tf.data] Add `tf.contrib.data.prefetch_to_device()`, which supports prefetching to GPU memory.
PiperOrigin-RevId:
190158272
A. Unique TensorFlower [Fri, 23 Mar 2018 01:05:03 +0000 (18:05 -0700)]
Add asserts for LinearOperatorBlockDiag.
All asserts are only dependent on the constituent operators due to properties of the direct sum.
PiperOrigin-RevId:
190156830