Akshay Modi [Tue, 17 Apr 2018 17:32:47 +0000 (10:32 -0700)]
Avoid ToString() in Eager's TFE_Execute.
Also use InlinedVector instead of std::vector for non-async path
Before:
Benchmark Time(ns) CPU(ns) Iterations
-------------------------------------------------------------
BM_Execute/0 1895 1898 360200 Execute
BM_Execute/1 1193 1942 358322 ExecuteAsync
BM_ExecuteFunction/0 5812 5825 100000 ExecuteFunction
BM_ExecuteFunction/1 5015 5374 100000 ExecuteFunctionAsync
After:
Benchmark Time(ns) CPU(ns) Iterations
-------------------------------------------------------------
BM_Execute/0 1604 1607 428262 Execute
BM_Execute/1 1150 1765 404821 ExecuteAsync
BM_ExecuteFunction/0 5615 5626 100000 ExecuteFunction
BM_ExecuteFunction/1 5111 5476 100000 ExecuteFunctionAsync
PiperOrigin-RevId:
193218331
A. Unique TensorFlower [Tue, 17 Apr 2018 17:13:09 +0000 (10:13 -0700)]
Change the contract of dynamic_builtin to reject all functions it can't process.
PiperOrigin-RevId:
193215246
Max Galkin [Tue, 17 Apr 2018 16:19:06 +0000 (09:19 -0700)]
Estimate IdentityN as Identity.
PiperOrigin-RevId:
193207469
A. Unique TensorFlower [Tue, 17 Apr 2018 16:02:14 +0000 (09:02 -0700)]
Fix incorrect rejection of xrange.
PiperOrigin-RevId:
193205016
A. Unique TensorFlower [Tue, 17 Apr 2018 14:41:09 +0000 (07:41 -0700)]
Add uint32/uint64 support to Gather op.
PiperOrigin-RevId:
193195939
A. Unique TensorFlower [Tue, 17 Apr 2018 14:07:16 +0000 (07:07 -0700)]
Fix the type info analysis to correctly process loops. Simplify the implementation by reusing some of the transformer base functions. Allow set_element_type to use literals. Add additional tests.
PiperOrigin-RevId:
193192409
A. Unique TensorFlower [Tue, 17 Apr 2018 09:23:10 +0000 (02:23 -0700)]
Automated g4 rollback of changelist
192842670
PiperOrigin-RevId:
193168327
Derek Murray [Tue, 17 Apr 2018 06:07:24 +0000 (23:07 -0700)]
[tf.data] Add an API for randomly sampling from multiple datasets.
Fixes #15999.
PiperOrigin-RevId:
193152683
Saurabh Saxena [Tue, 17 Apr 2018 03:28:02 +0000 (20:28 -0700)]
Make ParallelInterleaveDataset saveable.
PiperOrigin-RevId:
193142302
A. Unique TensorFlower [Tue, 17 Apr 2018 02:51:13 +0000 (19:51 -0700)]
Supply a dtype to super constructor, without which build() seems to crash.
PiperOrigin-RevId:
193139585
Younghee Kwon [Tue, 17 Apr 2018 02:10:10 +0000 (19:10 -0700)]
BoostedTreesEstimator in contrib: train_in_memory works with input_fns returning data.Dataset.
Only one batch of data is expected, so dataset.batch() is disallowed,
and dataset.repeat() will be ignored (only the first one would be used)
PiperOrigin-RevId:
193137094
Yifei Feng [Tue, 17 Apr 2018 01:41:28 +0000 (18:41 -0700)]
Remove proto imports in header files for core/kernels/hexagon.
The goal is to make kernels mostly independent of proto headers, which will let us lock down our .so imports.
PiperOrigin-RevId:
193134710
Shashi Shekhar [Tue, 17 Apr 2018 01:31:22 +0000 (18:31 -0700)]
Add a simple Profiler and instrument operator invocations in Interpreter.
PiperOrigin-RevId:
193133955
A. Unique TensorFlower [Tue, 17 Apr 2018 01:03:05 +0000 (18:03 -0700)]
Adding min node weight regularization
PiperOrigin-RevId:
193131300
Michael Case [Tue, 17 Apr 2018 00:34:01 +0000 (17:34 -0700)]
Remove deprecated/unused python related Bazel options.
Since py_runtime was introduced, Bazel ignores options such as
--force_python2 and --python2_path. Deleting to clean stuff up and
make sure people are not misled.
PiperOrigin-RevId:
193127681
Derek Murray [Tue, 17 Apr 2018 00:25:12 +0000 (17:25 -0700)]
[tf.data] Sort the results of `tf.matching_files()` to enable `Dataset.list_files()` to be determinstic.
PiperOrigin-RevId:
193126572
Benoit Steiner [Tue, 17 Apr 2018 00:12:05 +0000 (17:12 -0700)]
Don't rely on graph contruction for an initial shape inference.
PiperOrigin-RevId:
193124836
A. Unique TensorFlower [Tue, 17 Apr 2018 00:05:18 +0000 (17:05 -0700)]
Add LinearOperatorKronecker, representing the Kronecker product.
PiperOrigin-RevId:
193123894
Anna R [Mon, 16 Apr 2018 23:41:12 +0000 (16:41 -0700)]
Internal change.
PiperOrigin-RevId:
193119953
A. Unique TensorFlower [Mon, 16 Apr 2018 23:34:18 +0000 (16:34 -0700)]
Port the list append into the operators module. Not enabled yet.
PiperOrigin-RevId:
193118940
Olivia Nordquist [Mon, 16 Apr 2018 23:24:19 +0000 (16:24 -0700)]
disabling flaky asan test
PiperOrigin-RevId:
193117611
A. Unique TensorFlower [Mon, 16 Apr 2018 23:22:03 +0000 (16:22 -0700)]
Internal change
PiperOrigin-RevId:
193117142
A. Unique TensorFlower [Mon, 16 Apr 2018 23:15:19 +0000 (16:15 -0700)]
Create copy of locals() before copying, since modifying locals does not always affect the values. https://docs.python.org/2/library/functions.html#locals.
PiperOrigin-RevId:
193116254
A. Unique TensorFlower [Mon, 16 Apr 2018 23:04:43 +0000 (16:04 -0700)]
Replacing the current inner Cholesky decomposition loop with a While loop rolled version.
This will allow for much larger Cholesky decompositions (and thus matrix inversions) than previously possible on TPU because of the use of rolled While loops so XLA compilation will no longer timeout.
While there is a minor runtime performance decrease (now 25ms vs 15ms for a 500x500 matrix) the compilation time is significantly faster (12.8s vs 55.2s for a 500x500 matrix.)
PiperOrigin-RevId:
193114816
A. Unique TensorFlower [Mon, 16 Apr 2018 22:52:54 +0000 (15:52 -0700)]
Fix trace collection to properly remove the suffix.
PiperOrigin-RevId:
193113074
A. Unique TensorFlower [Mon, 16 Apr 2018 22:46:42 +0000 (15:46 -0700)]
Internal change.
PiperOrigin-RevId:
193112205
James Qin [Mon, 16 Apr 2018 21:52:41 +0000 (14:52 -0700)]
Increase softmax gpu unittest numeric stability
PiperOrigin-RevId:
193103363
Jiri Simsa [Mon, 16 Apr 2018 21:47:31 +0000 (14:47 -0700)]
Porting tests for `rpc_op` to OS.
PiperOrigin-RevId:
193102564
A. Unique TensorFlower [Mon, 16 Apr 2018 21:41:21 +0000 (14:41 -0700)]
Exposes InputPipelineConfig as tf.contrib.tpu.InputPipelineConfig.
This type is expected by the `per_host_input_for_training` argument of the TPUConfig constructor, but is not currently visible.
PiperOrigin-RevId:
193101540
Olivia Nordquist [Mon, 16 Apr 2018 21:17:02 +0000 (14:17 -0700)]
disabling test that fails tensorflow.asan
PiperOrigin-RevId:
193097794
A. Unique TensorFlower [Mon, 16 Apr 2018 21:13:52 +0000 (14:13 -0700)]
Use fixed sized tensor arrays and max loop iterations in dynamic_decode if the user supplies it and if the inputs were created in an XLA context.
PiperOrigin-RevId:
193097293
A. Unique TensorFlower [Mon, 16 Apr 2018 20:54:03 +0000 (13:54 -0700)]
Simplify the recursion when processing unpackings.
PiperOrigin-RevId:
193094078
Nick Desaulniers [Mon, 16 Apr 2018 20:36:55 +0000 (13:36 -0700)]
[XLA] Document and enforce reduction order of init value
All existing backends apply the init_value on the lhs, except for the evaluator. This causes problems for reductions which apply an identity function to a reduce or reduce window.
PiperOrigin-RevId:
193091323
A. Unique TensorFlower [Mon, 16 Apr 2018 20:32:12 +0000 (13:32 -0700)]
Adding several utility functions to TF2XLA to help with the Cholesky refactor. Mainly responsible for handling batching properly.
PiperOrigin-RevId:
193090634
A. Unique TensorFlower [Mon, 16 Apr 2018 20:22:58 +0000 (13:22 -0700)]
Update ops-related pbtxt files.
PiperOrigin-RevId:
193089301
A. Unique TensorFlower [Mon, 16 Apr 2018 20:04:23 +0000 (13:04 -0700)]
Simplify the implementation of break_statements.py
PiperOrigin-RevId:
193086371
Younghee Kwon [Mon, 16 Apr 2018 19:56:14 +0000 (12:56 -0700)]
boosted_trees: Make some regularizer/hyper-params as inputs instead of attributes.
PiperOrigin-RevId:
193085059
Igor Saprykin [Mon, 16 Apr 2018 19:21:15 +0000 (12:21 -0700)]
Early TPU distribution strategy and the associated testing infrastructure.
PiperOrigin-RevId:
193080098
A. Unique TensorFlower [Mon, 16 Apr 2018 19:12:46 +0000 (12:12 -0700)]
Tighten label check in BinaryLogisticHeadWithSigmoidCrossEntropyLoss
PiperOrigin-RevId:
193078844
A. Unique TensorFlower [Mon, 16 Apr 2018 19:09:36 +0000 (12:09 -0700)]
Add a common transformer feature that allows keeping temporary state across nodes. To be used in the break, continue and return canonicalizers.
PiperOrigin-RevId:
193078359
A. Unique TensorFlower [Mon, 16 Apr 2018 19:09:33 +0000 (12:09 -0700)]
Copy the if statement handlers over to the operators module. They will enabled in a follow-up CL.
PiperOrigin-RevId:
193078348
A. Unique TensorFlower [Mon, 16 Apr 2018 19:09:24 +0000 (12:09 -0700)]
Remove obsolete tests. Patch the unexpected print output in Python 3.
PiperOrigin-RevId:
193078330
A. Unique TensorFlower [Mon, 16 Apr 2018 18:56:15 +0000 (11:56 -0700)]
Mark the parent list as modified for index writes. Add special case for constructors where we know setting an attribute actually creates a new symbol. Clean up the tests a bit.
PiperOrigin-RevId:
193075909
A. Unique TensorFlower [Mon, 16 Apr 2018 18:47:11 +0000 (11:47 -0700)]
Refactoring: Rename the __ops module to ag__ (double underscore prefix has special meaning in Python). Consolidate all internal API calls through the ag__ module.
PiperOrigin-RevId:
193074379
Austin Anderson [Mon, 16 Apr 2018 18:33:14 +0000 (11:33 -0700)]
Internal testing changes
PiperOrigin-RevId:
193071881
Igor Saprykin [Mon, 16 Apr 2018 18:27:09 +0000 (11:27 -0700)]
Remove the hidden replicate_model_fn copy from core.
PiperOrigin-RevId:
193070799
Jiri Simsa [Mon, 16 Apr 2018 18:24:43 +0000 (11:24 -0700)]
Porting tests for the `decode_proto` and `encode_proto` to OS.
PiperOrigin-RevId:
193070420
Anna R [Mon, 16 Apr 2018 18:20:40 +0000 (11:20 -0700)]
Prefix clip_by_value with underscore in gen_math_ops so that it doesn't
interfere with clip_ops.clip_by_value when importing.
PiperOrigin-RevId:
193069700
Anna R [Mon, 16 Apr 2018 17:22:29 +0000 (10:22 -0700)]
PiperOrigin-RevId:
193059174
Benjamin Kramer [Mon, 16 Apr 2018 16:34:27 +0000 (09:34 -0700)]
Update for ObjectMemoryBuffer.h rename in upstream LLVM.
This will require a version bump in workspace.bzl
PiperOrigin-RevId:
193052084
A. Unique TensorFlower [Mon, 16 Apr 2018 04:52:17 +0000 (21:52 -0700)]
Internal change
PiperOrigin-RevId:
192981122
A. Unique TensorFlower [Mon, 16 Apr 2018 00:35:39 +0000 (17:35 -0700)]
Minor cleanup.
PiperOrigin-RevId:
192971080
A. Unique TensorFlower [Sat, 14 Apr 2018 09:15:58 +0000 (02:15 -0700)]
Style nit: avoid creating local variables when not required.
PiperOrigin-RevId:
192876802
A. Unique TensorFlower [Sat, 14 Apr 2018 08:22:59 +0000 (01:22 -0700)]
Make sure that same nodes are not optimized as part of multiple groups.
Replace recusrsion with iteration in AbsorbInputByOptimizedNodesGroup.
PiperOrigin-RevId:
192874364
A. Unique TensorFlower [Sat, 14 Apr 2018 04:15:59 +0000 (21:15 -0700)]
[XLA] Use pattern matcher in algebraic simplifier
PiperOrigin-RevId:
192862841
A. Unique TensorFlower [Sat, 14 Apr 2018 04:09:37 +0000 (21:09 -0700)]
Upgrade gRPC version used in OSS Tensorflow
PiperOrigin-RevId:
192862541
A. Unique TensorFlower [Sat, 14 Apr 2018 04:00:02 +0000 (21:00 -0700)]
Check there are no duplicate entries in sparse features as this would invalidate the example norm computation in SDCA.
PiperOrigin-RevId:
192861834
A. Unique TensorFlower [Sat, 14 Apr 2018 03:59:14 +0000 (20:59 -0700)]
Adding 1d and 3d orthogonal kernels convolutions.
PiperOrigin-RevId:
192861809
A. Unique TensorFlower [Sat, 14 Apr 2018 02:22:02 +0000 (19:22 -0700)]
Internal Change
PiperOrigin-RevId:
192856330
A. Unique TensorFlower [Sat, 14 Apr 2018 02:18:28 +0000 (19:18 -0700)]
Update ops-related pbtxt files.
PiperOrigin-RevId:
192856167
Igor Saprykin [Sat, 14 Apr 2018 02:09:07 +0000 (19:09 -0700)]
Clarify a caveat about metrics.
PiperOrigin-RevId:
192855733
Scott Zhu [Sat, 14 Apr 2018 00:52:20 +0000 (17:52 -0700)]
Merge changes from github.
PiperOrigin-RevId:
192850372
Asim Shankar [Sat, 14 Apr 2018 00:51:37 +0000 (17:51 -0700)]
Java: Bump release to 1.8.0-rc0
PiperOrigin-RevId:
192850310
Igor Saprykin [Sat, 14 Apr 2018 00:47:58 +0000 (17:47 -0700)]
Add a caveat about make_initiliazable_iterator to the README.
PiperOrigin-RevId:
192850014
Jeremy Lau [Sat, 14 Apr 2018 00:36:00 +0000 (17:36 -0700)]
VLOG(1) all OutOfRange CtxFailures, and LOG(WARNING) all other CtxFailures. This
unifies the logging behavior of the OP_REQUIRES and OP_REQUIRES_OK macros.
PiperOrigin-RevId:
192848921
James Qin [Sat, 14 Apr 2018 00:26:46 +0000 (17:26 -0700)]
Revamp Cudnn RNN kernels for incoming autotune changes.
* Create DoForward() and DoBackward() to be used by fwd/bak kernels and later autotune.
* Simplify CudnnRnnForward Comupute() function. Offload the majority of its logic to other member functions.
PiperOrigin-RevId:
192848100
Yu-Cheng Ling [Sat, 14 Apr 2018 00:13:45 +0000 (17:13 -0700)]
TFLite: Copy output data from BufferHandle to CPU memory by default.
PiperOrigin-RevId:
192846824
Yifei Feng [Fri, 13 Apr 2018 23:38:29 +0000 (16:38 -0700)]
Automated g4 rollback of changelist
192784701
PiperOrigin-RevId:
192842670
A. Unique TensorFlower [Fri, 13 Apr 2018 23:38:12 +0000 (16:38 -0700)]
Improve layout optimizer tests -- Evaluate nodes before and after optimization, to confirm the graph's behavior is maintained after optimization.
PiperOrigin-RevId:
192842623
Justine Tunney [Fri, 13 Apr 2018 22:57:45 +0000 (15:57 -0700)]
Upgrade SQLite
PiperOrigin-RevId:
192837358
A. Unique TensorFlower [Fri, 13 Apr 2018 22:53:05 +0000 (15:53 -0700)]
Restore definitions of static members in MklCpuAllocator.
These were removed in #17396 which made the static member variables of
MklCpuAllocator into inline variables, which are a C++17 feature, and not
properly restored in #18006 which reverted the inline declarations, leading to
an ODR violation that is apparently ignored with some compilers.
END_PUBLIC
RELNOTES: n/a
BEGIN_PUBLIC
Automated g4 rollback of changelist
191305220
PiperOrigin-RevId:
192836808
Akshay Agrawal [Fri, 13 Apr 2018 22:47:37 +0000 (15:47 -0700)]
Enable remote functions for TPU_SYSTEM.
PiperOrigin-RevId:
192836098
Francois Chollet [Fri, 13 Apr 2018 22:33:07 +0000 (15:33 -0700)]
Avoid mixing `Dimension` type and `int` when defining kernel shapes in conv layers.
PiperOrigin-RevId:
192834255
A. Unique TensorFlower [Fri, 13 Apr 2018 22:32:11 +0000 (15:32 -0700)]
[XLA] Pattern matcher for HLO, Shapes, Layouts
PiperOrigin-RevId:
192834129
A. Unique TensorFlower [Fri, 13 Apr 2018 22:23:08 +0000 (15:23 -0700)]
Add broadcasting to all LinearOperators.
This will broadcast in cases where batch shapes are not equal (but tries to determine statically if this is the case). The broadcasting is not as efficient as doing the broadcast in C++, but makes for the API to at least be completely broadcastable.
PiperOrigin-RevId:
192832919
Bixia Zheng [Fri, 13 Apr 2018 22:15:44 +0000 (15:15 -0700)]
[TF] Enable half precision XLA compiler tests for the gpu backend.
Modify some tests to allow larger error for half precision.
Enable half precision SpaceToBatchNDTest for the cpu backend.
PiperOrigin-RevId:
192831909
Sung Jin Hwang [Fri, 13 Apr 2018 21:51:16 +0000 (14:51 -0700)]
Added PmfToQuantizedCdf op to contrib/coder in TensorFlow.
The added op transforms probability mass functions (PMF) to quantized
cumulative distribution function (CDF), which can be used by range coder ops in
contrib/coder.
The op takes greedy approach to ensure that the post-quantization probability
masses do not sum over the maximum quantized value. The op does not make any
adjustment when the post-quantization probability masses already sum less than
the maximum value.
PiperOrigin-RevId:
192827779
Allen Lavoie [Fri, 13 Apr 2018 21:32:45 +0000 (14:32 -0700)]
Allow tf.train.Saver to load object-based checkpoints (using names)
This is the second part of the compatibility story. Object-based checkpointing APIs can already read name-based checkpoints, and now the name-based APIs can read object-based checkpoints by looking up the modified keys in the object graph proto.
PiperOrigin-RevId:
192824907
A. Unique TensorFlower [Fri, 13 Apr 2018 21:17:31 +0000 (14:17 -0700)]
[XLA] Redesign: add ~XlaOp() and ~XlaComputation().
PiperOrigin-RevId:
192822559
Austin Anderson [Fri, 13 Apr 2018 21:13:12 +0000 (14:13 -0700)]
Small tag change
PiperOrigin-RevId:
192821895
Francois Chollet [Fri, 13 Apr 2018 21:12:16 +0000 (14:12 -0700)]
Extend Keras symbol-feeding to dynamic-length tensors and tensors of different dtypes from the target placeholders.
PiperOrigin-RevId:
192821770
Anna R [Fri, 13 Apr 2018 21:09:58 +0000 (14:09 -0700)]
Internal change.
PiperOrigin-RevId:
192821482
A. Unique TensorFlower [Fri, 13 Apr 2018 20:40:28 +0000 (13:40 -0700)]
Support scalar mean in resolve_batch_normalization
PiperOrigin-RevId:
192816848
James Wexler [Fri, 13 Apr 2018 19:44:41 +0000 (12:44 -0700)]
Remove closure_js_proto_library rule for tf.example protos.
PiperOrigin-RevId:
192809073
A. Unique TensorFlower [Fri, 13 Apr 2018 19:37:04 +0000 (12:37 -0700)]
[XLA] Redesign: add a constructor: XlaComputation(HloModuleProto).
PiperOrigin-RevId:
192808038
A. Unique TensorFlower [Fri, 13 Apr 2018 19:35:32 +0000 (12:35 -0700)]
[XLA] Redesign: add a method that creates fake data for XlaComputation.
PiperOrigin-RevId:
192807851
A. Unique TensorFlower [Fri, 13 Apr 2018 19:18:53 +0000 (12:18 -0700)]
Expose tf.decode_compressed to the public API.
PiperOrigin-RevId:
192805605
A. Unique TensorFlower [Fri, 13 Apr 2018 18:16:36 +0000 (11:16 -0700)]
Fixing output alternatives
PiperOrigin-RevId:
192795596
Peter Hawkins [Fri, 13 Apr 2018 18:14:09 +0000 (11:14 -0700)]
[TF:XLA] Start a TensorFlow library that contains direct wrappers for XLA operators.
Add new XlaReduceWindow and XlaDynamicUpdateSlice operators.
Add new tests for the existing XlaWhile operator.
Add wrappers for XlaSend and XlaRecv.
PiperOrigin-RevId:
192795174
James Qin [Fri, 13 Apr 2018 18:06:49 +0000 (11:06 -0700)]
Add more logging for failure cases in CUDATimer
PiperOrigin-RevId:
192793983
Mark Heffernan [Fri, 13 Apr 2018 18:02:08 +0000 (11:02 -0700)]
Fix comment in xla_data.proto related to padding value for Windows.
PiperOrigin-RevId:
192792971
Anna R [Fri, 13 Apr 2018 17:52:56 +0000 (10:52 -0700)]
Internal change.
PiperOrigin-RevId:
192791493
A. Unique TensorFlower [Fri, 13 Apr 2018 17:30:32 +0000 (10:30 -0700)]
Disable x * x -> square(x) Grapler rewrite for complex types unless the op is on CPU. Square is not registered for complex types on GPU, and doing so produces a crash in with CUDA_ILLEGAL_INSTRUCTION when running it on open source ubuntu.
PiperOrigin-RevId:
192788160
A. Unique TensorFlower [Fri, 13 Apr 2018 17:27:11 +0000 (10:27 -0700)]
DepthwiseConv Optimization Fixes
PiperOrigin-RevId:
192787669
A. Unique TensorFlower [Fri, 13 Apr 2018 17:07:10 +0000 (10:07 -0700)]
Enable GCS remote cache in Windows Bazel Build
PiperOrigin-RevId:
192784701
Guangda Lai [Fri, 13 Apr 2018 17:02:25 +0000 (10:02 -0700)]
Add debugging checks for setting cuda stream, so it will check fail if the
stream is not set or set to a wrong one when running cudnn methods that
conceptually require a stream.
Also add missing cudnnSetStream()s for DoRnnForwardImpl() and
DoRnnBackwardImpl().
Implementation details:
1. a current_cudnn_stream_ member is added which will be set in cudnnSetStream()
2. a different macro is used to wrap cudnn methods that require a stream in
order to verify whether the provided stream is same as current_cudnn_stream_,
and the program will check fail if not
PiperOrigin-RevId:
192783913
A. Unique TensorFlower [Fri, 13 Apr 2018 15:22:06 +0000 (08:22 -0700)]
Experiment with pre-shuffled fully-connected weights
PiperOrigin-RevId:
192771889
A. Unique TensorFlower [Fri, 13 Apr 2018 15:17:49 +0000 (08:17 -0700)]
Refactor to remove the duplicate calls to obtain a function's namespace. This removes the need to explicitly import internal components (barring the tf module which cannot be imported directly).
PiperOrigin-RevId:
192771440
A. Unique TensorFlower [Fri, 13 Apr 2018 15:12:42 +0000 (08:12 -0700)]
Add support to TFLite for dilated convolution.
PiperOrigin-RevId:
192770919
A. Unique TensorFlower [Fri, 13 Apr 2018 15:10:57 +0000 (08:10 -0700)]
Automated g4 rollback of changelist
192768744
PiperOrigin-RevId:
192770717