aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/core/framework/shape_inference.h
Commit message (Collapse)AuthorAge
* Partial support tfe.defun in tf.gradients.Gravatar Alexandre Passos2018-10-08
| | | | | | | | Doesn't attempt to deal with cases where we might have already generated the functiondef for the parent function as in that case we cannot easily modify the forward pass. PiperOrigin-RevId: 216243224
* Add some extra DebugString() functions to shape_inference. Currently unused, ↵Gravatar Peter Hawkins2018-06-15
| | | | | | | | | but they were useful while debugging. Open visibility of the low level gen_resource_variables_ops to compiler tests. Fix bug in shape function of TPUReplicateInput for resource variables ? MergeInputHandleShapesAndTypes does not report shape mismatches. PiperOrigin-RevId: 200756762
* Add logic for StridedSlice ops in ShapeRefiner::ConstantPartialShape().Gravatar Skye Wanderman-Milne2018-05-07
| | | | | | | | | This mimics the logic in tensor_util.constant_value_as_shape, allowing the C++ shape inference code to infer more shapes than it could before. This change also adds an optional stride argument to InferenceContext::Subshape(). PiperOrigin-RevId: 195749522
* Added support for concatenation and slicing of symbolic shapesGravatar Benoit Steiner2018-04-19
| | | | PiperOrigin-RevId: 193532769
* Improvements to ResourceVariable + Variant code.Gravatar Eugene Brevdo2018-04-06
| | | | | | | | | | * Works in graph + eager modes * Fixed shape inference * Updated shape inference + refiner + constant eval code to support static shape tensor of `-1` meaning unknown shape. * Gather and Scatter for Variants now properly supported. * Variable copy-on-write for Variants now does a more shallow copy (as Variants are not expected to be updated "in-place" inside a variable; instead Variants will be updated via read-update-write inside a CriticalSection) PiperOrigin-RevId: 191975898
* Automated g4 rollback of changelist 190858242Gravatar Jianwei Xie2018-03-29
| | | | PiperOrigin-RevId: 190953197
* Automated g4 rollback of changelist 190835392Gravatar Anna R2018-03-28
| | | | PiperOrigin-RevId: 190858242
* Merge changes from github.Gravatar Jianwei Xie2018-03-28
| | | | PiperOrigin-RevId: 190835392
* Cleanup: Ran clang-format on all *.{h,cc} files in tensorflow/core/framework.Gravatar A. Unique TensorFlower2018-01-26
| | | | PiperOrigin-RevId: 183429540
* Remove THIRD_PARTY_ from #include guardsGravatar Sanjoy Das2018-01-24
| | | | | | They don't make sense in the open source repository. PiperOrigin-RevId: 183140889
* Improved shape inferenceGravatar Benoit Steiner2017-11-17
| | | | PiperOrigin-RevId: 176147013
* Validate shapes when updating edges from Python.Gravatar Olivia Nordquist2017-11-13
| | | | | | Uses MergeInput from shape_inference to check if the new input is compatible with the preexisting shape. Also this changes the MergeInput method. Previously, MergeInput would only return true if the shapes differed *and* the merge was successful. Now, MergeInput returns true only if the merge is successful. PiperOrigin-RevId: 175576173
* Track merged shapes and dimensions more accurately.Gravatar Benoit Steiner2017-11-07
| | | | PiperOrigin-RevId: 174920827
* Made the BroadcastBinaryOpShapeFn more accurateGravatar Benoit Steiner2017-11-07
| | | | PiperOrigin-RevId: 174896273
* Improved encoding on shapes in grappler.Gravatar Benoit Steiner2017-11-06
| | | | PiperOrigin-RevId: 174733491
* Shape inference for user-defined functions in TF. For now it is completely ↵Gravatar Max Galkin2017-09-26
| | | | | | | | "opt-in" via ShapeRefiner API and it doesn't yet affect any existing validation and inferences anywhere. Eventually graph validation should start using it. Doesn't yet support recursive functions and doesn't yet support more complex shape propagation scenarios where several iterations may be needed to infer shapes. PiperOrigin-RevId: 170078811
* Remove a bunch of proto.h includes from tensorflow/core headersGravatar Gunhan Gulsoy2017-08-23
| | | | | | | The goal is to make kernels mostly independent of proto headers, which will let us lock down our .so imports. RELNOTES: Remove proto.h includes from tensorflow/core headers. This may break users who has written custom c++ ops. PiperOrigin-RevId: 166237236
* Prepare to remove a bunch of proto.h includes from tensorflow/core headersGravatar Geoffrey Irving2017-06-29
| | | | | | | | | | | | The goal is to make kernels mostly independent of proto headers, which will let us lock down our .so imports. This CL does not remove any actual headers, but changes a bunch of files so that header removal is possible in a followup CL. It also marks the headers that will be removed with // TODO(b/62899350): Remove RELNOTES: n/a PiperOrigin-RevId: 160552878
* Prepare to not include node_def.proto.h in node_def_util.hGravatar Geoffrey Irving2017-06-23
| | | | | | | | | | The goal is to make kernels mostly independent of proto headers, which will let us lock down our .so imports. This CL makes a bunch of .cc files either include node_def.proto.h themselves or not need the definition of NodeDef; a second CL will make node_def_util.h not include node_def.proto.h. RELNOTES: n/a PiperOrigin-RevId: 159982117
* Infer shapes for loops during Grappler static inferenceGravatar A. Unique TensorFlower2017-06-20
| | | | PiperOrigin-RevId: 159570163
* Remove deprecated resource handle functions in InferenceContext.Gravatar A. Unique TensorFlower2017-06-05
| | | | PiperOrigin-RevId: 158034419
* Support negative axis for Split opGravatar A. Unique TensorFlower2017-05-31
| | | | PiperOrigin-RevId: 157628162
* Change shape inference so that a single resource tensor can carryGravatar A. Unique TensorFlower2017-05-25
| | | | | | | | shape and type information for multiple tensors. Apply this to QueueDequeueV2 handled by grappler. PiperOrigin-RevId: 157163757
* Automated g4 rollback of changelist 156251356Gravatar Geoffrey Irving2017-05-17
| | | | PiperOrigin-RevId: 156315860
* Automated g4 rollback of changelist 156244933Gravatar Geoffrey Irving2017-05-16
| | | | PiperOrigin-RevId: 156251356
* Reduce direct references to NodeDef in favor of Node and AttrSliceGravatar Geoffrey Irving2017-05-16
| | | | | | | | This is one step towards replacing in-memory use of NodeDef with a customized NodeInfo class. There are still quite a few Node::def() references, but far fewer than before. Those remaining require more work, either because they are part of kernel registration (which is a bunch of functions), copy and modify the NodeDef, etc. Follow-on CLs will remove more. RELNOTES: n/a PiperOrigin-RevId: 156244933
* Calling InferenceContext::UnknownShapes twice produces 2 shape handles for ↵Gravatar Benoit Steiner2017-05-02
| | | | | | which ShapeHandle::SameHandle returns false. Therefore we need to merge the shapes handles in InferenceContext::set_input, InferenceContext::set_input_handle_shape, and InferenceContext::set_output_handle_shape Change: 154911808
* Enable grappler to propagate shapes through queues.Gravatar Benoit Steiner2017-05-01
| | | | Change: 154789133
* Enable DCHECK in shape inference to check that the shape functionGravatar A. Unique TensorFlower2017-04-18
| | | | | has called set_output for each output tensor. Change: 153472242
* Remove all 64/32 bit compiler warnings from core/ops.Gravatar Suharsh Sivakumar2017-04-06
| | | | Change: 152353506
* Change data_flow_ops.cc for deprecated TensorArray opsGravatar A. Unique TensorFlower2017-03-16
| | | | | | to have unknown shape function for cases where the shape function is incorrectly returning no outputs. Change: 150315933
* Expose node_def from InferenceContext.Gravatar A. Unique TensorFlower2017-03-07
| | | | Change: 149468728
* Add convenience methods to ShapeInference: MakeShapeFromTensorShape() and ↵Gravatar Peter Hawkins2017-03-06
| | | | | | MakeShapeFromPartialTensorShape(). Update existing users of MakeShapeFromShapeProto to use the new helper methods where possible. Change: 149353816
* Add the graphdef version to InferenceContext and to ShapeRefiner::AddNode.Gravatar A. Unique TensorFlower2017-03-03
| | | | | | | Use this to allow loading reductions saved with older graphdefs. Change GraphConstructor to not increase the version when importing, but instead take the min of all versions. Change: 149152437
* Add whitespace to improve readability of logging & errors strings.Gravatar A. Unique TensorFlower2017-01-26
| | | | Change: 145723696
* Fix issues with shape inference during graph import.Gravatar Pete Warden2017-01-13
| | | | Change: 144464718
* Move ValidateSparseTensor to common_shape_fns.h.Gravatar A. Unique TensorFlower2016-11-14
| | | | Change: 139112567
* Refactor fold_constants to make reuse easier.Gravatar Pete Warden2016-11-08
| | | | Change: 138588267
* Allow passing constant_value_as_shape from call_cpp_shape_fn to the C++ shapeGravatar A. Unique TensorFlower2016-11-01
| | | | | | | | inference. Delegate to C++ shape function for Reshape. Fix reshape to handle attempting to infer unknown dim when product of known elements is 0. Change: 137837591
* Automated rollback of change 137740850Gravatar A. Unique TensorFlower2016-10-31
| | | | Change: 137747341
* Automated rollback of change 137731142Gravatar A. Unique TensorFlower2016-10-31
| | | | Change: 137740850
* Adds functionality for shape inference and dtype checking of variable-based ↵Gravatar A. Unique TensorFlower2016-10-31
| | | | | | | resources. Does not implement these resources yet as this change is big enough already. Change: 137731142
* In ShapeRefiner, add support for the C++ equivalent of the PythonGravatar A. Unique TensorFlower2016-10-25
| | | | | | | | | constant_value_as_tensor functions. This follows the same lazy-evaluation as getting constant tensors. Add validation in InferenceContext::MakeShapeFromShapeTensor for invalid values in the input tensor. Change: 137231472
* Make InferenceContext::Divide accept a DimensionHandle as the divisor.Gravatar A. Unique TensorFlower2016-10-25
| | | | Change: 137227660
* Update comments on shape_inference to indicate it's no longer experimental.Gravatar A. Unique TensorFlower2016-10-13
| | | | Change: 136107320
* Get rid of testing constructor for InferenceContext, fix TODOs.Gravatar Vijay Vasudevan2016-10-12
| | | | | | | | | | Makes shapes owned by a private subclass of InferenceContext called ShapeManager (for lack of better name), friend classed ShapeInferenceTestutil so that conversion from string to shapes is private. Cleaned up extra arg from constructors by changing the two places that also do that to use a simple helper function to convert to TensorShapeProto. Change: 135956508
* TensorFlow: for shape inference errors, provide more context in theGravatar Vijay Vasudevan2016-09-30
| | | | | | | | error message thrown by C++ (which op and what the input shapes are). Update tests that looked for exact error messages to use .contains() for robustness. Change: 134796475
* Move SDCA optimizer kernels to core.Gravatar A. Unique TensorFlower2016-09-27
| | | | | See: tensorflow/contrib/linear_optimizer/kernels/g3doc/readme.md Change: 134452636
* Switch several ops in array_ops.py to use C++ shape functions.Gravatar A. Unique TensorFlower2016-09-08
| | | | | | | | | | Change C++ shape function for ExpandDims to be more permissive - it now allows 'dim' to be any tensor with 1 element, although that is not currently converted to use C++ because of a separate issue to fix first (later change). Change C++ shape functions for SpaceToBatch and BatchToSpace to output rank-4 unknown shapes. Change: 132578764
* Delegate to C++ shape inference function for some conv and pooling functions.Gravatar A. Unique TensorFlower2016-09-07
| | | | | | Change several C++ shape inference functions to not return an error if an input dimension is unknown; this more closely matches the python functions. Change: 132459740