ManHyuk [Tue, 22 May 2018 03:42:04 +0000 (12:42 +0900)]
Merge branch 'master' into fix_typo
Michael Case [Mon, 21 May 2018 22:48:11 +0000 (15:48 -0700)]
Merge pull request #19254 from yongtang/
05122018-compute_accidental_hits
Add additional shape validation to `compute_accidental_hits`
Michael Case [Mon, 21 May 2018 21:38:18 +0000 (14:38 -0700)]
Merge pull request #19257 from yongtang/
05122018-QuantizedReluX
Shape validation of `max_features` in `QuantizedReluX`
Xiaoqiang Zheng [Mon, 21 May 2018 19:40:59 +0000 (12:40 -0700)]
Merge pull request #19326 from yongtang/
05162018-mpi_utils.h
Remove redundant header includes in mpi_utils.h
Michael Case [Mon, 21 May 2018 17:30:43 +0000 (10:30 -0700)]
Merge pull request #19258 from Androbin/patch-2
Update TFLite Docs on tf.gather
Michael Case [Mon, 21 May 2018 17:27:14 +0000 (10:27 -0700)]
Merge pull request #19394 from miaout17/fix-demop
Fix the TFLite iOS demo apps.
Michael Case [Mon, 21 May 2018 17:26:42 +0000 (10:26 -0700)]
Merge pull request #19396 from yongtang/19338-clip
Add test case for empty tensor with clip ops
Michael Case [Mon, 21 May 2018 17:10:03 +0000 (10:10 -0700)]
Merge pull request #19432 from soonson/patch-1
Update groups.md
Abdullah Alrasheed [Mon, 21 May 2018 16:08:27 +0000 (00:08 +0800)]
DOC: Fix python code in for invalid code (#19218)
There is an error in python code in the documentation. There is no class called `tf.estimator.Estimator.LinearClassifier` I think it was a typo and the author meant `tf.estimator.LinearClassifier`.
soonson [Mon, 21 May 2018 11:14:54 +0000 (20:14 +0900)]
Update groups.md
Add more user groups collected
Xiaoqiang Zheng [Mon, 21 May 2018 07:24:14 +0000 (00:24 -0700)]
Merge pull request #19357 from yongtang/
03122018-_any_variable_initialized
Fix the naming of _any_variable_initialized
Xiaoqiang Zheng [Mon, 21 May 2018 06:45:37 +0000 (23:45 -0700)]
Merge pull request #19273 from ageron/fix_estimator_doc
Fix errors and typos in the Estimators programmer's guide
Nand Dalal [Mon, 21 May 2018 03:15:21 +0000 (22:15 -0500)]
StreamingFilesDataset fixes (#19413)
* use source_dataset.output_dtypes to yield correctly typed output dataset
* add test and fix issue introduced by
2a6c5998a239f41926ca295ac20bb595862fd5ff
ManHyuk [Sun, 20 May 2018 14:48:05 +0000 (23:48 +0900)]
Fix typo (#19411)
Martin Wicke [Sun, 20 May 2018 00:09:51 +0000 (17:09 -0700)]
Merge pull request #18685 from nuchi/fft_no_core_framework_and_single_thread
XLA CPU Fft no core framework and single thread
ManHyuk [Sat, 19 May 2018 15:12:19 +0000 (00:12 +0900)]
Merge branch 'fix_typo' of https://github.com/ManHyuk/tensorflow into fix_typo
ManHyuk [Sat, 19 May 2018 15:11:55 +0000 (00:11 +0900)]
fix typo
ManHyuk [Sat, 19 May 2018 15:10:53 +0000 (00:10 +0900)]
fix typo
Qing ZHao [Sat, 19 May 2018 14:45:29 +0000 (22:45 +0800)]
comment typo (#19381)
Gunhan Gulsoy [Sat, 19 May 2018 03:30:46 +0000 (20:30 -0700)]
Merge pull request #19409 from zheng-xq/branch_197218170
Branch
197218170
annarev [Sat, 19 May 2018 02:10:04 +0000 (19:10 -0700)]
Merge pull request #19408 from annarev/add_more_missing_deps
Add missing dependencies to test_lite_main
zhengxq [Sat, 19 May 2018 00:05:40 +0000 (17:05 -0700)]
Merge commit for internal changes
Xiaoqiang Zheng [Fri, 18 May 2018 23:37:27 +0000 (16:37 -0700)]
Merge pull request #19338 from girving/clip
Make tf.clip_by_value not crash on empty tensors
Igor Saprykin [Fri, 18 May 2018 23:33:19 +0000 (16:33 -0700)]
Automated g4 rollback of changelist
197070234
PiperOrigin-RevId:
197218170
A. Unique TensorFlower [Fri, 18 May 2018 23:28:59 +0000 (16:28 -0700)]
Improve import error messages.
PiperOrigin-RevId:
197217638
Anna R [Fri, 18 May 2018 23:11:30 +0000 (16:11 -0700)]
Add missing dependencies to test_lite_main
Igor Saprykin [Fri, 18 May 2018 22:49:01 +0000 (15:49 -0700)]
Skip tests that require unavailable hardware when not using DistributionStrategy
Right now combinations.py skips tests that do not have the hardware that's
requried by the DistributionStrategy instance that is used in that test. After
this change, the user can trigger such a behavior even when they are not using
DistributionStrategy.
Two new special arguments are added: "required_tpu" and "required_gpus".
PiperOrigin-RevId:
197212466
Yifei Feng [Fri, 18 May 2018 22:43:30 +0000 (15:43 -0700)]
Merge pull request #19404 from yifeif/distributed
Make distributed_test use tf-nightly by default.
Alexandre Passos [Fri, 18 May 2018 22:33:00 +0000 (15:33 -0700)]
Correct dtype in resource_strided_slice_assign
PiperOrigin-RevId:
197210273
A. Unique TensorFlower [Fri, 18 May 2018 22:15:06 +0000 (15:15 -0700)]
Remove unused BUILD dependencies
PiperOrigin-RevId:
197207799
Jianwei Xie [Fri, 18 May 2018 21:59:01 +0000 (14:59 -0700)]
Fixed an issue when add context into params.
PiperOrigin-RevId:
197205327
Yifei Feng [Fri, 18 May 2018 21:25:59 +0000 (14:25 -0700)]
Make distributed_test use tf-nightly by default.
annarev [Fri, 18 May 2018 21:12:26 +0000 (14:12 -0700)]
Adding back abi and stacktrace dependencies to stacktrace_handler (#19401)
Yu-Cheng Ling [Fri, 18 May 2018 20:12:41 +0000 (13:12 -0700)]
Revert a change to fix TFLite iOS demo app.
It depends on released CocoaPod.
PiperOrigin-RevId:
197189734
Suharsh Sivakumar [Fri, 18 May 2018 20:07:18 +0000 (13:07 -0700)]
The quantizer should match the patterns for partition variables.
PiperOrigin-RevId:
197189118
A. Unique TensorFlower [Fri, 18 May 2018 19:41:20 +0000 (12:41 -0700)]
[dataset]: Remove extra `repeat` in the docstring for `shard`.
PiperOrigin-RevId:
197185877
Dimitris Vardoulakis [Fri, 18 May 2018 19:24:20 +0000 (12:24 -0700)]
[TF:XLA] Delete the reverseDFS scheduler. With recent improvements to the List scheduler, reverseDFS is no longer needed.
PiperOrigin-RevId:
197183727
A. Unique TensorFlower [Fri, 18 May 2018 19:21:44 +0000 (12:21 -0700)]
Expose read-only versions of input tensors in tflite.
PiperOrigin-RevId:
197183345
Joshua V. Dillon [Fri, 18 May 2018 19:17:05 +0000 (12:17 -0700)]
Enable `SeedStream` construction from other `SeedStream` instances.
PiperOrigin-RevId:
197182686
Igor Ganichev [Fri, 18 May 2018 19:14:47 +0000 (12:14 -0700)]
Add eager tests for automatic tensor flattening
PiperOrigin-RevId:
197182339
Mustafa Ispir [Fri, 18 May 2018 19:09:55 +0000 (12:09 -0700)]
Add an in-memory evaluator for Estimator. It will run evaluation without a checkpoint. This will let user get evaluation metrics on more steps without saving.
Example:
```python
def train_input_fn():
...
return train_dataset
def eval_input_fn():
...
return eval_dataset
estimator = tf.estimator.DNNClassifier(...)
evaluator = tf.contrib.estimator.InMemoryEvaluatorHook(
estimator, eval_input_fn)
estimator.train(train_input_fn, hooks=[evaluator])
```
PiperOrigin-RevId:
197181726
A. Unique TensorFlower [Fri, 18 May 2018 19:08:32 +0000 (12:08 -0700)]
When converting an unsupported op in TOCO, we can possibly infer the output type from an attribute named Tout (this works, e.g., for RandomUniformInt).
PiperOrigin-RevId:
197181552
Sanjoy Das [Fri, 18 May 2018 18:56:28 +0000 (11:56 -0700)]
[TF:XLA] Bump open source llvm revision to r332697
PiperOrigin-RevId:
197179581
Younghee Kwon [Fri, 18 May 2018 18:46:54 +0000 (11:46 -0700)]
boosted_trees: allow labels to have rank 1 as other estimators.
PiperOrigin-RevId:
197178169
Yu-Cheng Ling [Fri, 18 May 2018 18:46:06 +0000 (11:46 -0700)]
Fix the TFLite iOS demo apps.
This partially reverted
2bf2308872a6dfa8d6d0809acf0098f666e00fe8.
The demo apps in `lite/examples` depends on CocoaPod, not the Github
head code.
Peter Hawkins [Fri, 18 May 2018 18:43:25 +0000 (11:43 -0700)]
[TF:XLA] Remove underscore prefix from XlaLaunch operator.
Minor fixes to comments.
PiperOrigin-RevId:
197177582
Ruoxin Sang [Fri, 18 May 2018 18:28:18 +0000 (11:28 -0700)]
Validate the file signatures before issusing a content read in GCS. Remove the
checkpoint hack. Enable the stat cache by default, as the block cache has
already been enabled by default. Set the default stat cache max_age to 5s,
which is the same in the Cloud TPU server.
PiperOrigin-RevId:
197175258
Yong Tang [Fri, 18 May 2018 17:59:31 +0000 (17:59 +0000)]
Update test case to cover all scenarios
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Yong Tang [Fri, 18 May 2018 17:58:57 +0000 (17:58 +0000)]
Add additional test case
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Yong Tang [Fri, 18 May 2018 17:29:26 +0000 (17:29 +0000)]
Add test case for empty tensor with clip ops.
This fix is based on 19337 and 19338. The issue was that
previously an empty tensor for tf.clip_by_value on GPU
triggers a crash. The issue should have been fixed by 19338 and
the recent master. It makes sense to adds the test case for this issue.
This fix adds the test case.
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
A. Unique TensorFlower [Fri, 18 May 2018 17:42:50 +0000 (10:42 -0700)]
Automated g4 rollback of changelist
197118212
PiperOrigin-RevId:
197167501
Yu-Cheng Ling [Fri, 18 May 2018 17:39:45 +0000 (10:39 -0700)]
Op version: Populate version in Toco TFLite exporter
PiperOrigin-RevId:
197166962
Nick Desaulniers [Fri, 18 May 2018 17:23:34 +0000 (10:23 -0700)]
[TF:XLA] Allow the HloEvaluator to be changed for the HLO interpreter.
PiperOrigin-RevId:
197164443
Rachel Lim [Fri, 18 May 2018 17:21:59 +0000 (10:21 -0700)]
[tf.data] Changed internal implementation of `make_csv_dataset`, and removed arguments `default_float_type` and `comment` from `make_csv_dataset`
PiperOrigin-RevId:
197164167
Yu-Cheng Ling [Fri, 18 May 2018 17:12:37 +0000 (10:12 -0700)]
Improve TFLite generated example test speed.
PiperOrigin-RevId:
197162686
Brian Patton [Fri, 18 May 2018 15:38:40 +0000 (08:38 -0700)]
Update the docstring on function.Defun to reflect current graph/session freezing behavior.
PiperOrigin-RevId:
197150790
A. Unique TensorFlower [Fri, 18 May 2018 14:52:32 +0000 (07:52 -0700)]
Restructure BUILD rules to be modularly correct
PiperOrigin-RevId:
197145545
A. Unique TensorFlower [Fri, 18 May 2018 14:49:06 +0000 (07:49 -0700)]
Mark link-time dependency library as alwayslink=1.
PiperOrigin-RevId:
197145205
Tatiana Shpeisman [Fri, 18 May 2018 14:50:54 +0000 (07:50 -0700)]
Merge pull request #18240 from Intel-tensorflow/ashraf/direct_session_bugfix
INTEL MKL: Fixing a unit test failure, for direct session memory allocation
A. Unique TensorFlower [Fri, 18 May 2018 14:47:41 +0000 (07:47 -0700)]
Modify PadInsertion pass so that it matches other passes.
Currently, PadInsertion only iterates over the instructions in the
entry_computation. Other passes iterate over MakeNonfusionComputations.
When we run on HloSnapshots derived from TPU benchmarks, this makes a
difference, because it seems none of the convolutions are inside the entry
computation.
PiperOrigin-RevId:
197145067
A. Unique TensorFlower [Fri, 18 May 2018 13:31:20 +0000 (06:31 -0700)]
Dropping support for CUDA < 8.
PiperOrigin-RevId:
197137612
A. Unique TensorFlower [Fri, 18 May 2018 13:27:13 +0000 (06:27 -0700)]
Extracts the following optimizations into methods:
SimplifyArithmeticOperations
ReduceDivToReciprocalMul
PiperOrigin-RevId:
197137281
Ilya Biryukov [Fri, 18 May 2018 10:14:27 +0000 (03:14 -0700)]
Update downloadable clang to a new revision
PiperOrigin-RevId:
197121447
A. Unique TensorFlower [Fri, 18 May 2018 09:37:52 +0000 (02:37 -0700)]
Dropping support for cuDNN < 6.
Enable CUDNN_FFT_TILING_FORWARD for cuDNN >= 7.
PiperOrigin-RevId:
197118212
Pavithra Vijay [Fri, 18 May 2018 04:36:39 +0000 (21:36 -0700)]
Move Keras code out of _impl folder and remove API files.
PiperOrigin-RevId:
197097430
Michael Kuperstein [Fri, 18 May 2018 01:09:45 +0000 (18:09 -0700)]
[XLA] Clamp indices in DynamicSlice and DynamicUpdateSlice instead of wrapping.
This implements the following index clamping in all backends (CPU, GPU, Interpreter):
for(int i = 0; i < rank; ++i)
start_index[i] = clamp(start_index[i], 0, output_dim_size[i] - update_dim_size[i])
Which ensures the slice (or update region) is always inbounds w.r.t the input.
PiperOrigin-RevId:
197082276
A. Unique TensorFlower [Fri, 18 May 2018 00:40:47 +0000 (17:40 -0700)]
Handle HloInstruction::ToString() when literal is missing.
PiperOrigin-RevId:
197079144
Mark Daoust [Fri, 18 May 2018 00:25:47 +0000 (17:25 -0700)]
markdown fixes
PiperOrigin-RevId:
197077588
A. Unique TensorFlower [Fri, 18 May 2018 00:11:47 +0000 (17:11 -0700)]
Do not force default layout when there is no need to.
Allow the inner computations to negotiate a root and parameter layouts different from default.
END_PUBLIC
RELNOTES: n/a
---------------------
BEGIN_PUBLIC
Automated g4 rollback of changelist
194293187
PiperOrigin-RevId:
197076025
Martin Wicke [Fri, 18 May 2018 00:06:37 +0000 (17:06 -0700)]
Merge pull request #19355 from tensorflow/mrry-patch-2
Include <algorithm> in .pb_text.cc generated files
A. Unique TensorFlower [Thu, 17 May 2018 23:59:50 +0000 (16:59 -0700)]
Add NCHW_VECT_W tensor format.
PiperOrigin-RevId:
197074411
A. Unique TensorFlower [Thu, 17 May 2018 23:52:31 +0000 (16:52 -0700)]
Enable optimizations submitted during pre-NIPS freeze:
* Snapshot to Identity promotion.
* Removal of transposes pairs separated by chain.
PiperOrigin-RevId:
197073602
Younghee Kwon [Thu, 17 May 2018 23:52:17 +0000 (16:52 -0700)]
boosted_trees: fixed the crash when eval/prediction is attempted with the initial checkpoints (at step 0) before training.
PiperOrigin-RevId:
197073582
Akshay Modi [Thu, 17 May 2018 23:52:07 +0000 (16:52 -0700)]
Misc changes found when debugging an unrelated problem.
- (pywrap_tfe.i) Improve error message for better debugging TFE_Py_Execute failures.
- (pywrap_tfe_src.cc) Accept _value of None
- (base.i) Remove unnecessary temporary
PiperOrigin-RevId:
197073571
A. Unique TensorFlower [Thu, 17 May 2018 23:26:24 +0000 (16:26 -0700)]
Make V1 metrics distributed-aware. Also fix a bug where assertAllClose
was sometimes ignoring its `msg` parameter.
PiperOrigin-RevId:
197070234
A. Unique TensorFlower [Thu, 17 May 2018 23:23:33 +0000 (16:23 -0700)]
[XLA] Redesign: delete xla::Computation.
PiperOrigin-RevId:
197069851
Craig Citro [Thu, 17 May 2018 23:06:21 +0000 (16:06 -0700)]
Don't add branch prediction hints when compiling under nvcc.
As seen in #19203, the `__builtin_expect` compiler builtin isn't recognized as
a builtin in nvcc8, leading to compilation failures of the form
./tensorflow/core/kernels/gather_functor_gpu.cu.h(57): error: calling a __host__ function("__builtin_
expect") from a __global__ function("tensorflow::GatherOpKernel< ::Eigen::half, int, (bool)1> ") is n
ot allowed
when attempting to build TensorFlow.
This change fixes things by adding an additional check for `__NVCC__`, and
avoiding any branch prediction hints in that case.
PiperOrigin-RevId:
197067418
Olivia Nordquist [Thu, 17 May 2018 22:49:12 +0000 (15:49 -0700)]
fixing some incorrect documentation in test cases.
PiperOrigin-RevId:
197064874
Sanjoy Das [Thu, 17 May 2018 22:47:30 +0000 (15:47 -0700)]
Introduce an "indexed array" analysis
Context: we want to optimize computations hanging off of a embedding lookup from
a constant array. For instance, consider:
embedding = gather from a constant array using non-constant indices
embedding_reshaped = reshape embedding
embedding_reshaped_transposed = transpose embedding_reshaped
result = dot(embedding_reshaped_transposed, constant)
In the graph above, depending on how the details work out, we may be able to
fold `result` into a gather from a precomputed constant array. However, it is
inconvenient to get there by incremental rewrites -- it is probably not
profitable to rewrite embedding_reshaped or embedding_reshaped_transposed [0] as
embedding lookups but we get to "see" that the dot can be rewritten only after
rewriting the reshape and the transpose.
This analysis aims to make the optimization above more straightforward by
allowing a transformation pass (that uses this analysis) to query the analysis
to see if if `result` _can_ be represented as an embedding lookup. If yes it
can then apply some profitability heuristics to decide if it is worth it to
rewrite it as one. This suggested workflow gives us separation of concerns (the
legality of the rewrite is computed separately from its profitability) and, more
importantly, lets us "look ahead" and analyze the dot without rewriting its
operands.
The implementation is far from complete (most of the interesting bits are TODO)
but I wanted to get an early design review before I spent too much time on this.
[0] Under the assumption that transposing or reshaping are not expensive enough
to pay the price of keeping around a new potentially large constant (in
particular, some of these may have been equivalent to free bitcasts).
PiperOrigin-RevId:
197064648
Youlong Cheng [Thu, 17 May 2018 22:47:24 +0000 (15:47 -0700)]
Add more test cases in function_test
PiperOrigin-RevId:
197064629
A. Unique TensorFlower [Thu, 17 May 2018 22:34:00 +0000 (15:34 -0700)]
Delete unused proto schema "graph_explorer.proto".
PiperOrigin-RevId:
197062616
Igor Saprykin [Thu, 17 May 2018 22:29:03 +0000 (15:29 -0700)]
Support combinations stored in a global variable in combinations.py-based tests.
The user's input is modified to give the test a better name. If the user stores combinations in a variable and applies those combinations to more than one test, then the test case name will be a concatenation of of the names of the previous test cases.
PiperOrigin-RevId:
197061902
David Majnemer [Thu, 17 May 2018 22:28:33 +0000 (15:28 -0700)]
[XLA] Use Expm1 in Elu/Selu
exp(x) - 1 is best executed using the composed Expm1 operation as it is better
behaved when exp(x) is near 1.
PiperOrigin-RevId:
197061826
Akshay Modi [Thu, 17 May 2018 22:28:09 +0000 (15:28 -0700)]
Move runtime.{h,cc,_test.cc} into core/common_runtime/eager as attr_builder
I'm not familiar with how the CMake build is set up but from the description
of the problem the dependency graph is coarser than Bazel's, so I think this
should fix #18925.
PiperOrigin-RevId:
197061764
A. Unique TensorFlower [Thu, 17 May 2018 22:10:25 +0000 (15:10 -0700)]
Clean up CFG test suite
PiperOrigin-RevId:
197059149
Jiri Simsa [Thu, 17 May 2018 22:12:24 +0000 (15:12 -0700)]
Merge pull request #19294 from yongtang/
03122018-MapAndBatchDataset
Add shape validation in shape function of MapAndBatchDataset
Blake Hechtman [Thu, 17 May 2018 22:08:33 +0000 (15:08 -0700)]
[XLA] Remove eq_shapes from Identical SlowPath since it is already checked in
Identical.
PiperOrigin-RevId:
197058888
Yu-Cheng Ling [Thu, 17 May 2018 21:58:04 +0000 (14:58 -0700)]
Support Bool in Cast (TFLite)
PiperOrigin-RevId:
197056978
Rachel Lim [Thu, 17 May 2018 21:37:34 +0000 (14:37 -0700)]
Added CSV parsing to the tf.data programmers guide
Relevant to #278.
PiperOrigin-RevId:
197053723
Allen Lavoie [Thu, 17 May 2018 21:32:47 +0000 (14:32 -0700)]
Basic usability fixes for RNNCell wrappers
They weren't calling their parent constructors (for the Keras base Layer), so a bunch of their methods threw odd errors. There may still be issues, but hopefully not so blatent.
Fixes #19208. For real this time.
PiperOrigin-RevId:
197052962
A. Unique TensorFlower [Thu, 17 May 2018 21:31:29 +0000 (14:31 -0700)]
Fix L2Normalization.
PiperOrigin-RevId:
197052728
Nick Desaulniers [Thu, 17 May 2018 21:22:49 +0000 (14:22 -0700)]
[TF:STREAM_EXECUTOR] move declaration of multi_platform_manager to header
PiperOrigin-RevId:
197051272
Allen Lavoie [Thu, 17 May 2018 21:11:14 +0000 (14:11 -0700)]
Automated g4 rollback of changelist
197026249
PiperOrigin-RevId:
197049255
Michael Kuperstein [Thu, 17 May 2018 20:37:57 +0000 (13:37 -0700)]
[TF:XLA] Do not rely on implementation-defined semantics of DynamicSlice.
ReverseSequence relies on DynamicSlice wrapping around, which is implementation-defined behavior, and is not guaranteed. Pad the input instead.
PiperOrigin-RevId:
197043307
A. Unique TensorFlower [Thu, 17 May 2018 20:12:51 +0000 (13:12 -0700)]
Allows users to specify allow_custom_ops when calling tf.contrib.lite.toco_convert().
PiperOrigin-RevId:
197039477
Michael Case [Thu, 17 May 2018 20:02:08 +0000 (13:02 -0700)]
Remove -DGEMMLOWP_ALLOW_SLOW_SCALAR_FALLBACK being added by default to all builds.
PiperOrigin-RevId:
197037867
A. Unique TensorFlower [Thu, 17 May 2018 19:55:02 +0000 (12:55 -0700)]
Support functools.partial as callable object in tf_inspect.getargspec.
PiperOrigin-RevId:
197036874
A. Unique TensorFlower [Thu, 17 May 2018 19:31:17 +0000 (12:31 -0700)]
[XLA] Redesign: delete Client::LoadSnapeshot(SessionModule). This is a precondition to delete xla::Computation.
PiperOrigin-RevId:
197033641
Akshay Modi [Thu, 17 May 2018 19:29:54 +0000 (12:29 -0700)]
Test some distributions stuff in Eager as well as Graph
PiperOrigin-RevId:
197033485
A. Unique TensorFlower [Thu, 17 May 2018 18:52:49 +0000 (11:52 -0700)]
Internal Change
PiperOrigin-RevId:
197028096