platform/upstream/tensorflow.git
6 years ago[tf.data] Fix a memory leak when an iterator is reinitialized many times in a session.
Derek Murray [Wed, 7 Feb 2018 01:37:02 +0000 (17:37 -0800)]
[tf.data] Fix a memory leak when an iterator is reinitialized many times in a session.

Previously, we would instantiate a new function handle for each
function in a dataset each time an iterator on that dataset was
initialized. These would only be deleted at session closure, which
could lead to an apparent leak of memory over the lifetime of session.

PiperOrigin-RevId: 184768730

6 years agoFix memory tracking in the case where temp memory is used as output memory.
Yuefeng Zhou [Wed, 7 Feb 2018 01:32:50 +0000 (17:32 -0800)]
Fix memory tracking in the case where temp memory is used as output memory.
Track all persistent memory allocation in allocate_persistent call except for variables and queues where persistent memory is tracked in variables ops and queue ops. Deallocation of persistent memory is ignored.

PiperOrigin-RevId: 184768231

6 years agoSync the opensource and non-opensource build
Andrew Selle [Wed, 7 Feb 2018 01:10:31 +0000 (17:10 -0800)]
Sync the opensource and non-opensource build

PiperOrigin-RevId: 184765632

6 years agoAddress Adagrad/RMSProp incompatibility with CudnnRNN
James Qin [Wed, 7 Feb 2018 00:25:59 +0000 (16:25 -0800)]
Address Adagrad/RMSProp incompatibility with CudnnRNN

CudnnRNN layers have variables of unknown shapes, which Adagrad/RMSProp didn't handle before.

This fixes 6620(#6620).

PiperOrigin-RevId: 184759579

6 years ago[XLA] Add and use new Literal::MakeTupleOwned overload.
Justin Lebar [Tue, 6 Feb 2018 23:30:40 +0000 (15:30 -0800)]
[XLA] Add and use new Literal::MakeTupleOwned overload.

Previously MakeTupleOwned was cumbersome to use, because you had to
explicitly materialize a vector<unique_ptr<Literal>>.  With this new
overload, you can pass unique_ptrs directly.

PiperOrigin-RevId: 184751119

6 years agoAdd read resource variable benchmarks.
Akshay Modi [Tue, 6 Feb 2018 23:13:41 +0000 (15:13 -0800)]
Add read resource variable benchmarks.

Initial benchmarks:
entry {
  name: "MicroBenchmarks.benchmark_read_variable_op_2_by_2_CPU"
  iters: 30000
  wall_time: 22.9616721471
  extras {
    key: "examples_per_sec"
    value {
      double_value: 43550.8352176
    }
  }
}

entry {
  name: "MicroBenchmarks.benchmark_read_variable_op_with_tape_2_by_2_CPU"
  iters: 30000
  wall_time: 27.3616631826
  extras {
    key: "examples_per_sec"
    value {
      double_value: 36547.4859232
    }
  }
}

PiperOrigin-RevId: 184748548

6 years agoCreates tf.contrib.feature_column module.
A. Unique TensorFlower [Tue, 6 Feb 2018 23:09:51 +0000 (15:09 -0800)]
Creates tf.contrib.feature_column module.

PiperOrigin-RevId: 184747924

6 years agoHandles possible infinite recursion in while loop fix.
Alexandre Passos [Tue, 6 Feb 2018 22:43:18 +0000 (14:43 -0800)]
Handles possible infinite recursion in while loop fix.

PiperOrigin-RevId: 184743192

6 years ago[TF Ops] Bugfix to Operation initializer: error message uses node_def.
Eugene Brevdo [Tue, 6 Feb 2018 22:37:21 +0000 (14:37 -0800)]
[TF Ops] Bugfix to Operation initializer: error message uses node_def.

self.node_def may not yet be accessible when using the C api.

PiperOrigin-RevId: 184742074

6 years agoAutomated g4 rollback of changelist 184551259
Joshua V. Dillon [Tue, 6 Feb 2018 22:17:52 +0000 (14:17 -0800)]
Automated g4 rollback of changelist 184551259

PiperOrigin-RevId: 184738583

6 years agoExport CXX11_ABI_FLAG and MONOLITHIC_BUILD constants.
Anna R [Tue, 6 Feb 2018 22:05:01 +0000 (14:05 -0800)]
Export CXX11_ABI_FLAG and MONOLITHIC_BUILD constants.

PiperOrigin-RevId: 184736216

6 years agoAnother rolling back of performance regression.
Alexandre Passos [Tue, 6 Feb 2018 21:54:56 +0000 (13:54 -0800)]
Another rolling back of performance regression.

PiperOrigin-RevId: 184734426

6 years agoMake TFE_Py_FastpathExecute work for all types of ops
Akshay Modi [Tue, 6 Feb 2018 21:53:56 +0000 (13:53 -0800)]
Make TFE_Py_FastpathExecute work for all types of ops

MatMul benchmarks:
entry {
  name: "MicroBenchmarks.benchmark_gen_math_ops_matmul_2_by_2_CPU"
  iters: 30000
  wall_time: 11.580435435
  extras {
    key: "examples_per_sec"
    value {
      double_value: 86352.538781
    }
  }
}

entry {
  name: "MicroBenchmarks.benchmark_tfe_py_fastpath_execute_matmul_2_by_2_CPU"
  iters: 30000
  wall_time: 7.02576637268
  extras {
    key: "examples_per_sec"
    value {
      double_value: 142333.227004
    }
  }
}

PiperOrigin-RevId: 184734289

6 years agoAdded support for nested functions
Benoit Steiner [Tue, 6 Feb 2018 21:48:55 +0000 (13:48 -0800)]
Added support for nested functions
Properly handle the case of control dependencies

PiperOrigin-RevId: 184733444

6 years agoAdd utility function which makes implicit `tf.get_variable` dependencies an
Joshua V. Dillon [Tue, 6 Feb 2018 21:03:03 +0000 (13:03 -0800)]
Add utility function which makes implicit `tf.get_variable` dependencies an
explicit argument of a callable.

PiperOrigin-RevId: 184725878

6 years agoFixing the issue where an escape character was being included in the branch name...
Amit Patankar [Tue, 6 Feb 2018 20:58:56 +0000 (12:58 -0800)]
Fixing the issue where an escape character was being included in the branch name changes.

PiperOrigin-RevId: 184725332

6 years ago[TF:XLA] Bump open source llvm revision to r324323
Sanjoy Das [Tue, 6 Feb 2018 20:57:07 +0000 (12:57 -0800)]
[TF:XLA] Bump open source llvm revision to r324323

PiperOrigin-RevId: 184725126

6 years agoFetch OpDefs from C API instead of using python op registry in ops.py.
Skye Wanderman-Milne [Tue, 6 Feb 2018 20:44:12 +0000 (12:44 -0800)]
Fetch OpDefs from C API instead of using python op registry in ops.py.

PiperOrigin-RevId: 184723558

6 years agoFixed typo
A. Unique TensorFlower [Tue, 6 Feb 2018 20:30:05 +0000 (12:30 -0800)]
Fixed typo

PiperOrigin-RevId: 184721743

6 years agotfdbg: deflake session_debug_file_test
Shanqing Cai [Tue, 6 Feb 2018 20:27:02 +0000 (12:27 -0800)]
tfdbg: deflake session_debug_file_test

by disabling grappler in the test.

PiperOrigin-RevId: 184721353

6 years agoSecond, cleaner, attempt at external control dependency handling.
Alexandre Passos [Tue, 6 Feb 2018 20:04:48 +0000 (12:04 -0800)]
Second, cleaner, attempt at external control dependency handling.

PiperOrigin-RevId: 184718016

6 years agoImprove side_effect_guards to (1) avoid aliasing non-tensors and (2) combine aliasing...
A. Unique TensorFlower [Tue, 6 Feb 2018 20:02:18 +0000 (12:02 -0800)]
Improve side_effect_guards to (1) avoid aliasing non-tensors and (2) combine aliasing with re-indenting. Move the renaming visitor into a generic utility API.
This loses potential efficiency by risking sequencing ops where there is no risk of a race. On the other hand it's still not entirely robust, and we need to raise an error where we can't guarantee that.

PiperOrigin-RevId: 184717456

6 years agoEstimator should handle ResourceVariables correctly.
Alexandre Passos [Tue, 6 Feb 2018 20:01:22 +0000 (12:01 -0800)]
Estimator should handle ResourceVariables correctly.

PiperOrigin-RevId: 184717305

6 years agoSupport resource variables in moving averages.
Alexandre Passos [Tue, 6 Feb 2018 19:58:36 +0000 (11:58 -0800)]
Support resource variables in moving averages.

PiperOrigin-RevId: 184716895

6 years agoContrib estimator should handle ResourceVariables properly.
Alexandre Passos [Tue, 6 Feb 2018 19:51:47 +0000 (11:51 -0800)]
Contrib estimator should handle ResourceVariables properly.

PiperOrigin-RevId: 184715896

6 years agoInternal change
Mingsheng Hong [Tue, 6 Feb 2018 19:51:18 +0000 (11:51 -0800)]
Internal change

PiperOrigin-RevId: 184715822

6 years agoAdding tf_export decorators/calls to TensorFlow functions and constants.
Anna R [Tue, 6 Feb 2018 19:07:04 +0000 (11:07 -0800)]
Adding tf_export decorators/calls to TensorFlow functions and constants.

PiperOrigin-RevId: 184708277

6 years agoEnable layout optimizer by default
Yao Zhang [Tue, 6 Feb 2018 19:00:58 +0000 (11:00 -0800)]
Enable layout optimizer by default

PiperOrigin-RevId: 184707084

6 years agoSupport training with model parallelism in tpu_estimator.
A. Unique TensorFlower [Tue, 6 Feb 2018 18:48:28 +0000 (10:48 -0800)]
Support training with model parallelism in tpu_estimator.

PiperOrigin-RevId: 184704902

6 years agoUse the function name as the grappler item id
Benoit Steiner [Tue, 6 Feb 2018 18:43:45 +0000 (10:43 -0800)]
Use the function name as the grappler item id

PiperOrigin-RevId: 184704131

6 years agoAdd local interconnect data to DeviceLocality.
A. Unique TensorFlower [Tue, 6 Feb 2018 18:13:04 +0000 (10:13 -0800)]
Add local interconnect data to DeviceLocality.

This information can be used within a distributed implementation
when deciding how to route data transfers that might involve more
than one hop.  By default the new fields are populated according to
StreamExecutor::CanEnablePeerAccessTo(), however a platform-specific
implementation can augment them with more detailed values.

Do some refactoring of gpu_device and gpu_device_factory, making
GetDeviceLocalities() and GetInterconnectMaps() into virtual
functions.

PiperOrigin-RevId: 184698821

6 years agoExplicitly specify the value of all the attributes for the newly created Assign
Benoit Steiner [Tue, 6 Feb 2018 18:11:26 +0000 (10:11 -0800)]
Explicitly specify the value of all the attributes for the newly created Assign
nodes since we can't always rely on TF calling AddDefaultAttrsToGraphDef.

PiperOrigin-RevId: 184698463

6 years agoFix bug in and speed up ConstantFolding::CreateNodeDef():
A. Unique TensorFlower [Tue, 6 Feb 2018 17:40:53 +0000 (09:40 -0800)]
Fix bug in and speed up ConstantFolding::CreateNodeDef():
  * Fix bug trying to store more than kintmax32 values in a repeated proto field.
  * Speed up populating compressed format. Example: tensorflow/python/kernel_tests/large_concat_op_test with size = 2**29+6 goes from ~30 seconds to ~15 seconds. The fraction of time spent in ConstantFolding::CreateNodeDef() goes down from about 35% to about 12%.

PiperOrigin-RevId: 184693749

6 years agoAdd a utility function to partition TensorFlow Lite graphs into subgraphs.
Andrew Selle [Tue, 6 Feb 2018 17:28:24 +0000 (09:28 -0800)]
Add a utility function to partition TensorFlow Lite graphs into subgraphs.

This will be used for the forthcoming delegate interface. The delegate
interface will allow parts of the TensorFlow lite graph to be sent to
other accelerators. NNAPI will be implemented to move to this interface.
That will allow partial delegation to NNAPI.

PiperOrigin-RevId: 184692126

6 years agoJava: Update to 1.6.0-rc0
Asim Shankar [Tue, 6 Feb 2018 16:53:58 +0000 (08:53 -0800)]
Java: Update to 1.6.0-rc0

PiperOrigin-RevId: 184687994

6 years agoMake namedtuples with identical name and field names to be considered as the same...
A. Unique TensorFlower [Tue, 6 Feb 2018 16:50:41 +0000 (08:50 -0800)]
Make namedtuples with identical name and field names to be considered as the same shallow structure in assert_shallow_structure

PiperOrigin-RevId: 184687609

6 years agoRemove redundant calls to realloc dynamic tensors.
A. Unique TensorFlower [Tue, 6 Feb 2018 16:11:41 +0000 (08:11 -0800)]
Remove redundant calls to realloc dynamic tensors.

PiperOrigin-RevId: 184682942

6 years agoMakes ResourceVariables return correct initialized_value and initial_value for object...
A. Unique TensorFlower [Tue, 6 Feb 2018 11:11:59 +0000 (03:11 -0800)]
Makes ResourceVariables return correct initialized_value and initial_value for objects created from VariableDef protos.

Previously self._initial_value wasn't set in such cases which causes accessing var.initial_value to fail for variables in the imported meta graphs.

PiperOrigin-RevId: 184657191

6 years agomcmc_diagnostics.py added to contrib/bayesflow/. potential_scale_reduction function...
Ian Langmore [Tue, 6 Feb 2018 08:29:29 +0000 (00:29 -0800)]
mcmc_diagnostics.py added to contrib/bayesflow/.  potential_scale_reduction function added.
.

PiperOrigin-RevId: 184644450

6 years agoRollback of CL 183879566, and fix Windows CMAKE build by copying one additional CUDA...
A. Unique TensorFlower [Tue, 6 Feb 2018 08:24:51 +0000 (00:24 -0800)]
Rollback of CL 183879566, and fix Windows CMAKE build by copying one additional CUDA header file.

PiperOrigin-RevId: 184644220

6 years agoExport align_corners to TF Lite
A. Unique TensorFlower [Tue, 6 Feb 2018 02:45:13 +0000 (18:45 -0800)]
Export align_corners to TF Lite

PiperOrigin-RevId: 184622482

6 years agoAdded the ability to query the amount of RAM available
Benoit Steiner [Tue, 6 Feb 2018 02:22:37 +0000 (18:22 -0800)]
Added the ability to query the amount of RAM available
Also added the ability to query the CPU frequency on Windows.

PiperOrigin-RevId: 184620390

6 years agoCleanup markdown errors in `Bijector`.
Joshua V. Dillon [Tue, 6 Feb 2018 01:55:26 +0000 (17:55 -0800)]
Cleanup markdown errors in `Bijector`.

PiperOrigin-RevId: 184616392

6 years ago[XLA] Add HloBindings::ToString().
Justin Lebar [Tue, 6 Feb 2018 01:45:26 +0000 (17:45 -0800)]
[XLA] Add HloBindings::ToString().

PiperOrigin-RevId: 184615306

6 years agoCorrectly treat "devices=/gpu:0" argument of replicate_model_fn.
Igor Saprykin [Tue, 6 Feb 2018 01:24:31 +0000 (17:24 -0800)]
Correctly treat "devices=/gpu:0" argument of replicate_model_fn.

At the moment if "devices=/GPU:0" are specified by the user, then variables are going to be placed on the GPU.  However, if "devices=/gpu:0" are given, then they are going to be placed on the CPU.  Instead, the latter case should be equivalent to the former case.

PiperOrigin-RevId: 184612823

6 years agoMisc cleanups and tweaks:
Mingsheng Hong [Tue, 6 Feb 2018 01:16:27 +0000 (17:16 -0800)]
Misc cleanups and tweaks:
1. Removed obsolete constructors in ProcessLunctionLibraryRuntime
2. Add const annotations to Tensor::PrintOneDim(), and removed unnecessary vector copy.

PiperOrigin-RevId: 184611531

6 years ago[XLA:GPU] Split IrEmitter{Unn,N}ested out of ir_emitter.h.
Justin Lebar [Tue, 6 Feb 2018 01:11:39 +0000 (17:11 -0800)]
[XLA:GPU] Split IrEmitter{Unn,N}ested out of ir_emitter.h.

Also add a bunch of clarifying comments.

PiperOrigin-RevId: 184610674

6 years agoSupport negative axis in concatenation
A. Unique TensorFlower [Tue, 6 Feb 2018 00:32:38 +0000 (16:32 -0800)]
Support negative axis in concatenation

PiperOrigin-RevId: 184605786

6 years agoShard linear operator tests.
A. Unique TensorFlower [Tue, 6 Feb 2018 00:12:19 +0000 (16:12 -0800)]
Shard linear operator tests.

PiperOrigin-RevId: 184602704

6 years agoAdd filepaths to test_local support.
Amit Patankar [Tue, 6 Feb 2018 00:08:16 +0000 (16:08 -0800)]
Add filepaths to test_local support.

PiperOrigin-RevId: 184602010

6 years agoRemove makefile build dependency on all_opensource_files, as part of the effort to...
Yifei Feng [Tue, 6 Feb 2018 00:04:06 +0000 (16:04 -0800)]
Remove makefile build dependency on all_opensource_files, as part of the effort to remove all_opensource_files #15758.

PiperOrigin-RevId: 184601439

6 years ago"frame_name" attr must be altered when importing/exporting MetaGraphDefs.
Skye Wanderman-Milne [Mon, 5 Feb 2018 23:49:57 +0000 (15:49 -0800)]
"frame_name" attr must be altered when importing/exporting MetaGraphDefs.

The frame_name attr of Enter operations must be the name of the
associated WhileLoopContext, otherwise taking the gradient of the loop
will result in frame errors.

I'm not happy that the export logic is in meta_graph.py (all other
control flow de/serialization is in control_flow_ops.py). However, I
can't think of how else to do it, since only export_scoped_meta_graph
has access to the NodeDefs being exported.

PiperOrigin-RevId: 184599323

6 years ago[XLA] Sink layout sensitivity from CSE into HloInstruction::Identical, and make it...
A. Unique TensorFlower [Mon, 5 Feb 2018 23:46:50 +0000 (15:46 -0800)]
[XLA] Sink layout sensitivity from CSE into HloInstruction::Identical, and make it the default.

PiperOrigin-RevId: 184598903

6 years agoMake fold batch norm code use OneofPattern and rearrange functions to (maybe) be...
Suharsh Sivakumar [Mon, 5 Feb 2018 23:32:32 +0000 (15:32 -0800)]
Make fold batch norm code use OneofPattern and rearrange functions to (maybe) be more readable.

PiperOrigin-RevId: 184597111

6 years agoAssign total_loss in order not to crash if training loop exists early.
A. Unique TensorFlower [Mon, 5 Feb 2018 23:30:54 +0000 (15:30 -0800)]
Assign total_loss in order not to crash if training loop exists early.

PiperOrigin-RevId: 184596877

6 years agoAdding TensorSpec to represent the specification of Tensors.
Sergio Guadarrama [Mon, 5 Feb 2018 23:16:29 +0000 (15:16 -0800)]
Adding TensorSpec to represent the specification of Tensors.

PiperOrigin-RevId: 184594856

6 years agoVerify tflite model in TFLite Java API
A. Unique TensorFlower [Mon, 5 Feb 2018 23:14:20 +0000 (15:14 -0800)]
Verify tflite model in TFLite Java API

PiperOrigin-RevId: 184594561

6 years agoAdd logging to diagnose device properties parsing problem in Grappler.
Max Galkin [Mon, 5 Feb 2018 23:10:44 +0000 (15:10 -0800)]
Add logging to diagnose device properties parsing problem in Grappler.

PiperOrigin-RevId: 184594084

6 years agoFix CBLAS Conv reference implementation in TFLite.
Yu-Cheng Ling [Mon, 5 Feb 2018 23:05:43 +0000 (15:05 -0800)]
Fix CBLAS Conv reference implementation in TFLite.

PiperOrigin-RevId: 184592951

6 years agoAutomated g4 rollback of changelist 184573795
Alexandre Passos [Mon, 5 Feb 2018 22:47:23 +0000 (14:47 -0800)]
Automated g4 rollback of changelist 184573795

PiperOrigin-RevId: 184590080

6 years agoBackward pass implementation for fusion optimizer.
A. Unique TensorFlower [Mon, 5 Feb 2018 22:43:35 +0000 (14:43 -0800)]
Backward pass implementation for fusion optimizer.

PiperOrigin-RevId: 184589487

6 years ago[XLA] Fix documentation for Clamp.
A. Unique TensorFlower [Mon, 5 Feb 2018 22:38:07 +0000 (14:38 -0800)]
[XLA] Fix documentation for Clamp.

PiperOrigin-RevId: 184588630

6 years ago[TF:XLA] Implement GatherNd.
Peter Hawkins [Mon, 5 Feb 2018 22:12:02 +0000 (14:12 -0800)]
[TF:XLA] Implement GatherNd.

PiperOrigin-RevId: 184584104

6 years ago[tf.data] Fix use-after-free bug when closing down an input pipeline.
Derek Murray [Mon, 5 Feb 2018 21:43:52 +0000 (13:43 -0800)]
[tf.data] Fix use-after-free bug when closing down an input pipeline.

This fix affects the distributed runtime; DirectSession use is unaffected.

Before this change, an iterator that used a background prefetching
thread might attempt to use a captured FunctionLibraryRuntime from a
subgraph that had been deregistered (and hence its
FunctionLibraryRuntime would have been deleted). This change
introduces a mechanism for "cloning" the necessary parts of the
FunctionLibraryRuntime so that it can be owned by the
IteratorResource.

PiperOrigin-RevId: 184579490

6 years ago[XLA] Add tests for Clamp of S32 and U32 vectors with broadcasted scalars.
A. Unique TensorFlower [Mon, 5 Feb 2018 21:43:08 +0000 (13:43 -0800)]
[XLA] Add tests for Clamp of S32 and U32 vectors with broadcasted scalars.

PiperOrigin-RevId: 184579375

6 years agoFixes issue where external control dependencies in while loops are dropped.
Alexandre Passos [Mon, 5 Feb 2018 21:03:53 +0000 (13:03 -0800)]
Fixes issue where external control dependencies in while loops are dropped.

Fixes #15891

PiperOrigin-RevId: 184573795

6 years agocontrib/rnn: Fix #16703
Asim Shankar [Mon, 5 Feb 2018 20:40:51 +0000 (12:40 -0800)]
contrib/rnn: Fix #16703
(Bug introduced in
https://github.com/tensorflow/tensorflow/commit/3f579020bab8f00e4621e9c7c740cbf13136a809)

Kudos to @akhti for pointing this out.

PiperOrigin-RevId: 184570448

6 years agoBug fix: Don't dereference nullptr in OpKernelContext::input_alloc_attr().
A. Unique TensorFlower [Mon, 5 Feb 2018 20:16:04 +0000 (12:16 -0800)]
Bug fix: Don't dereference nullptr in OpKernelContext::input_alloc_attr().

PiperOrigin-RevId: 184566770

6 years ago[TF:XLA] Making constant folding deterministic.
Yunxing Dai [Mon, 5 Feb 2018 20:15:10 +0000 (12:15 -0800)]
[TF:XLA] Making constant folding deterministic.

Making constant folding deterministic by doing DFS deterministically and inserting a serialization point based on nodes' names.

This is the last source of non-determinism remaining in the TF:XLA stack.

RELNOTES: Constant folding pass is now deterministic.
PiperOrigin-RevId: 184566644

6 years agoSerialize the evaluation of the AssignAdd nodes to make the result more
Benoit Steiner [Mon, 5 Feb 2018 20:08:36 +0000 (12:08 -0800)]
Serialize the evaluation of the AssignAdd nodes to make the result more
deterministic
Improved testing

PiperOrigin-RevId: 184565483

6 years agoSupport parsing from text and fused op in contrib.
Yao Zhang [Mon, 5 Feb 2018 19:23:40 +0000 (11:23 -0800)]
Support parsing from text and fused op in contrib.

PiperOrigin-RevId: 184558131

6 years agoAutomated g4 rollback of changelist 184323369
Joshua V. Dillon [Mon, 5 Feb 2018 18:45:33 +0000 (10:45 -0800)]
Automated g4 rollback of changelist 184323369

PiperOrigin-RevId: 184551259

6 years agoProper reallocation of dynamic tensors.
A. Unique TensorFlower [Mon, 5 Feb 2018 18:39:18 +0000 (10:39 -0800)]
Proper reallocation of dynamic tensors.

PiperOrigin-RevId: 184550199

6 years agoMake flat_transforms_to_matrices and matrices_to_flat_transforms public (#781).
Dan Ringwalt [Mon, 5 Feb 2018 18:36:24 +0000 (10:36 -0800)]
Make flat_transforms_to_matrices and matrices_to_flat_transforms public (#781).

PiperOrigin-RevId: 184549704

6 years agoChanging the link to point to new android job.
Amit Patankar [Mon, 5 Feb 2018 18:16:02 +0000 (10:16 -0800)]
Changing the link to point to new android job.

PiperOrigin-RevId: 184546160

6 years ago[XLA] add Conditional to the local Python XLA client.
A. Unique TensorFlower [Mon, 5 Feb 2018 18:06:10 +0000 (10:06 -0800)]
[XLA] add Conditional to the local Python XLA client.

PiperOrigin-RevId: 184544483

6 years agoClarify that tf.contrib.image.rotate angles are counterclockwise.
Dan Ringwalt [Mon, 5 Feb 2018 17:49:01 +0000 (09:49 -0800)]
Clarify that tf.contrib.image.rotate angles are counterclockwise.

PiperOrigin-RevId: 184541776

6 years agoEnable aggressive identity node pruning in dependency optimizer.
A. Unique TensorFlower [Mon, 5 Feb 2018 17:33:42 +0000 (09:33 -0800)]
Enable aggressive identity node pruning in dependency optimizer.

PiperOrigin-RevId: 184539756

6 years agoGet control_flow_ops.py ready to support de/serializing nested control flow.
Skye Wanderman-Milne [Mon, 5 Feb 2018 16:41:54 +0000 (08:41 -0800)]
Get control_flow_ops.py ready to support de/serializing nested control flow.

With this change, ControlFlowContexts keep track of their nested
contexts (the reverse lookup as ControlFlowContext.outer_context).
This is to enable de/serializing the nested contexts of each "root"
context, and only adding the root contexts to collections. This allows
for simple deserialization of each root context by recursively
deserializing its nested contexts.

The de/serialization logic is disabled and the corresponding
control_flow.proto changes are omitted for now for forwards
compatability (i.e. three-week-old binaries must be ready to accept
the new proto format once its commited). After this is committed for
three weeks, I'll commit a follow-up change enabling the new behavior.

Design note: I chose to serialize the nested contexts, rather than the
outer contexts, because it makes it easy to deserialize the contexts
in topological order and to assign the right outer context. If we
serialized the outer contexts, there'd need to be some mechanism for
either sorting all the serialized contexts first, or deserializing all
of them and then doing another pass to assign the outer contexts.

PiperOrigin-RevId: 184533406

6 years agoInternal Change
A. Unique TensorFlower [Mon, 5 Feb 2018 16:32:18 +0000 (08:32 -0800)]
Internal Change

PiperOrigin-RevId: 184532417

6 years agoExpand the activity analysis to composite names.
A. Unique TensorFlower [Mon, 5 Feb 2018 15:56:27 +0000 (07:56 -0800)]
Expand the activity analysis to composite names.
Fix a bug in the cond template that caused bad syntax when there it no symbol that needs aliasing.
More refactoring in the process, including:
 * introduce the QN (qualified name) class to hold symbol information; it has value semantics and can generate the original symbol, a corresponding AST tree or a single-symbol form (e.g. "a.b" -> a_b)
 * allow the template mechanism to use QNs for substitutions
 * annotate *all* symbol nodes with their corresponding QN object; this is done as first step during static analysis, and automatically performed on all template expansions
 * start using typed annotation keys (Enum values) instead of plain strings
 * rename access.py to activity.py
 * sanitize nodes in template expansion by deep copying the AST without annotations, to avoid common references

PiperOrigin-RevId: 184528586

6 years agomini documentation fix
A. Unique TensorFlower [Mon, 5 Feb 2018 09:42:16 +0000 (01:42 -0800)]
mini documentation fix

PiperOrigin-RevId: 184496843

6 years agoFixed sequence_mask behavior on unknown shape.
A. Unique TensorFlower [Mon, 5 Feb 2018 09:03:32 +0000 (01:03 -0800)]
Fixed sequence_mask behavior on unknown shape.

`sequence_mask` crashed when fed with a tensor of unknown rank.
Added a test for that, and expanded a bit existing tests.

Also fixed pre-existing lint errors.

PiperOrigin-RevId: 184493239

6 years agoSupport for quantized LSTM models.
A. Unique TensorFlower [Mon, 5 Feb 2018 03:58:18 +0000 (19:58 -0800)]
Support for quantized LSTM models.

PiperOrigin-RevId: 184476753

6 years agoMinor fixes to the get started doc.
Mingsheng Hong [Sun, 4 Feb 2018 19:54:35 +0000 (11:54 -0800)]
Minor fixes to the get started doc.

PiperOrigin-RevId: 184457074

6 years agoAvoid retaining two copies of each constant in `ConstantOp`.
Derek Murray [Sun, 4 Feb 2018 19:24:51 +0000 (11:24 -0800)]
Avoid retaining two copies of each constant in `ConstantOp`.

Presently, the kernel keeps two copies of the constant tensor value, which can be large:
1. In the `ConstantOp::tensor_` field.
2. In the `OpKernel::def_` field (as an attr of the `NodeDef`).

Since we can be sure that `ConstantOp` will never need to access the
tensor value from `OpKernel::def_`, this change introduces a mechanism
for `OpKernel` implementations to store a stripped `NodeDef` in the
base class, and uses it in `ConstantOp` to avoid storing the tensor
value attr.

PiperOrigin-RevId: 184455793

6 years ago[XLA] Assign mandatory constraints in a DFS order and non-manatory constraints in...
Blake Hechtman [Sun, 4 Feb 2018 07:45:00 +0000 (23:45 -0800)]
[XLA] Assign mandatory constraints in a DFS order and non-manatory constraints in a BFS order.

PiperOrigin-RevId: 184429818

6 years ago[tf-signal] Fix exception when input shape is unknown in mfccs_from_log_mel_spectrograms.
RJ Ryan [Sat, 3 Feb 2018 17:46:31 +0000 (09:46 -0800)]
[tf-signal] Fix exception when input shape is unknown in mfccs_from_log_mel_spectrograms.

PiperOrigin-RevId: 184400783

6 years ago[XLA] Add tests for Clamp with scalars S32 and U32.
A. Unique TensorFlower [Sat, 3 Feb 2018 07:02:16 +0000 (23:02 -0800)]
[XLA] Add tests for Clamp with scalars S32 and U32.

PiperOrigin-RevId: 184376425

6 years agoFix breakage: Can't build TFLite with Bazel for Mac / iOS.
Yu-Cheng Ling [Sat, 3 Feb 2018 06:39:45 +0000 (22:39 -0800)]
Fix breakage: Can't build TFLite with Bazel for Mac / iOS.

PiperOrigin-RevId: 184375534

6 years agoA more efficient implementation of the Op using batch operations.
A. Unique TensorFlower [Sat, 3 Feb 2018 03:40:30 +0000 (19:40 -0800)]
A more efficient implementation of the Op using batch operations.

PiperOrigin-RevId: 184367562

6 years agoExtended TFE_OpSetDevice() with the ability to set an op device from non-GPU back...
Mingsheng Hong [Sat, 3 Feb 2018 03:10:39 +0000 (19:10 -0800)]
Extended TFE_OpSetDevice() with the ability to set an op device from non-GPU back to GPU.

Added unit testing, and also refined unit test logic for checking the presence
of a GPU device. The latter is needed when we add XLA device support.

PiperOrigin-RevId: 184366172

6 years ago[XLA] Minor cleanups related to multi-output fusion.
Justin Lebar [Sat, 3 Feb 2018 02:57:10 +0000 (18:57 -0800)]
[XLA] Minor cleanups related to multi-output fusion.

- Add some comments about preexisting invariants, and add some CHECKs.

- In the LoopEmitter constructor, materialize the given
  ArraySlice<IrArray> to a vector, so we don't rely on the given
  ArraySlice having any particular lifetime.

- Add the invariant that the LoopEmitter constructor which takes a
  list of IrArrays is only for multi-output fusion.  Previously it said:
  If you only pass one array, then treat it as regular fusion.  But this
  results in an LLVM type mismatch, because the given
  target_element_generator should be passing a struct with one element.

PiperOrigin-RevId: 184365310

6 years agoPropagate outfeed sharding, if specified from TensorFlow.
A. Unique TensorFlower [Sat, 3 Feb 2018 02:03:11 +0000 (18:03 -0800)]
Propagate outfeed sharding, if specified from TensorFlow.

PiperOrigin-RevId: 184361221

6 years agoAutomated g4 rollback of changelist 184347012
Anna R [Sat, 3 Feb 2018 01:59:16 +0000 (17:59 -0800)]
Automated g4 rollback of changelist 184347012

PiperOrigin-RevId: 184360818

6 years ago[tf.data] Add public header "tensorflow/core/framework/dataset.h".
Derek Murray [Sat, 3 Feb 2018 01:09:59 +0000 (17:09 -0800)]
[tf.data] Add public header "tensorflow/core/framework/dataset.h".

This adds the ability to create a custom C++ Dataset implementation
without linking it statically into the TensorFlow library.  Note that
this internal API is experimental and subject to change between
versions of TensorFlow.

Fixes #16682.

PiperOrigin-RevId: 184356318

6 years agoCheck that the type of an implicitly dereferenced tensor matches the expected input...
Derek Murray [Sat, 3 Feb 2018 01:09:16 +0000 (17:09 -0800)]
Check that the type of an implicitly dereferenced tensor matches the expected input type.

The dtype of a tensor reference can change between the point when it is "produced" by an
operation and consumed by the next operation. This evades checks in the executor that the
type of tensor on each edge matches the type signatures of the producing and consuming operation, which could lead to undefined behavior. Although there is no existing operation that changes the type of a tensor reference, it is possible to use the OpKernelContext API to do so, so we add a further check in the runtime to defend against operations that might be added in the future.

PiperOrigin-RevId: 184356242

6 years agoUpdate global_step by default if the user specifies a host_call.
Jonathan Hseu [Sat, 3 Feb 2018 00:35:10 +0000 (16:35 -0800)]
Update global_step by default if the user specifies a host_call.

PiperOrigin-RevId: 184352399

6 years agoTpu cluster resolver only returns TF server addresses for 'HEALTHY' tpu nodes.
A. Unique TensorFlower [Sat, 3 Feb 2018 00:18:59 +0000 (16:18 -0800)]
Tpu cluster resolver only returns TF server addresses for 'HEALTHY' tpu nodes.

PiperOrigin-RevId: 184350480

6 years agoReplacing _container_prefix with _graph_key to preserve its use in optimizer and...
Alexandre Passos [Sat, 3 Feb 2018 00:02:22 +0000 (16:02 -0800)]
Replacing _container_prefix with _graph_key to preserve its use in optimizer and deprecate others.

PiperOrigin-RevId: 184348303