Partial Shapes and Types, Part 4e: Dot (#1787)
* Adapt Tensor class to have partial shapes * Add PartialShapes to Input, Output, Function, Node classes * Terminological cleanup * Add PartialShape propagation for Parameter and Result * Implement partial-shape propagation for elementwise ops * More comments * One more comment tweak * Add tests for the merge functions * Add merging of undetermined element types * Fix a goophup in deserializer implementation * Implement fallback for ops that do not support partial shape/type validation * Updates for some older unit tests, now that operator[] exists * Add missing validate_punt_if_incomplete to AllReduce * Implement partial shape/type propagation for AllReduce * Implement partial shape/type propagation for Reshape * Remove unneeded validate_punt from Result * Implement partial shape/type propagation for Reverse * Implement partial shape/type validation for ReverseSequence * Implement partial shape/type validation for ArithmeticReduction * Better docstrings for the stuff introduced in #1692; remove prototype for unimplemented, unused PartialShape::append() * One more docstring thing I forgot to save * Switch terminology from 'determined/undetermined' to 'static/dynamic' * Switch terminology from 'complete/incomplete' to 'static/dynamic' for shapes; fix up some mushily worded comments * Fix overzealous edits from the last commit * Rename one test that escaped the Great Renaming * Remove unnecessary validate_punt_if_dynamic from Reshape * Fix comment typo * Rewrite operator+ and operator* for Dimension as members, not friends * Formatting tweak * Show argument types/shapes in long NodeDescription; tank unit tests to block merge * Fix dynamic element type propagation for elementwise ops, add some unit tests for same * Fix error message * Roll 'Not' back to existing behavior (non-boolean input types allowed) * Add a TODO tag to a todo item * Add unit tests for partial shape/type propagation with ReverseSequence * Add unit tests for partial-shape/type propagation for ArithmeticReduction (via Sum) * Implement partial shape/type validation for Dot * Implement unit tests for partial-shape/type propagation for Dot * Implement partial type/shape propagation for GetOutputElement * Function signatures * Add implementations, unit tests for relaxes/refines functions * Generalize project/reduce/inject functions to cover PartialShape, move to shape_util.[ch]pp * Deal with std::find_if #include issues * Fix more include madness * Some light reformatting * Review comments
Showing
Please
register
or
sign in
to comment