aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/core/grappler/optimizers/arithmetic_optimizer.h
Commit message (Collapse)AuthorAge
* [Grappler] Add RemoveStackStridedSliceSameAxis optimizer.Gravatar Eugene Brevdo2018-10-10
| | | | | | | | | | | | | | | | // Replace operations of the form: // x = stack((a_0, a_1, ..., a_{n-1}), axis=k)[:,...,i,...] // with // a_i // when the strided slice index `i` is applied in the k'th axis. // // Similarly, replace operations of the form: // x = stack((a_0, a_1, ..., a_{n-1}), axis=k)[:,...,i:i+1,...] // with // expand_dims(a_i, axis=k) // PiperOrigin-RevId: 216535346
* Re-enable hoisting of coeff-wise unary chains out of Split and into Concat.Gravatar A. Unique TensorFlower2018-08-31
| | | | PiperOrigin-RevId: 211162510
* Convert exp(x)-1 into expm1(x).Gravatar A. Unique TensorFlower2018-07-31
| | | | PiperOrigin-RevId: 206841457
* Automated rollback of commit 6874e1ef40c4189d96c105227f60b507953f95d3Gravatar A. Unique TensorFlower2018-07-09
| | | | PiperOrigin-RevId: 203790544
* UnaryOpsComposition arithmetic optimizer.Gravatar Eugene Zhulenev2018-06-29
| | | | PiperOrigin-RevId: 202703970
* Convert exp(x-1) into expm1(x).Gravatar A. Unique TensorFlower2018-06-28
| | | | PiperOrigin-RevId: 202598404
* Optimize max/min reductions over monotonic functionsGravatar A. Unique TensorFlower2018-06-16
| | | | PiperOrigin-RevId: 200843761
* Convert log(x+1) to log1p(x).Gravatar A. Unique TensorFlower2018-06-14
| | | | PiperOrigin-RevId: 200645461
* Automated g4 rollback of changelist 197562826Gravatar A. Unique TensorFlower2018-06-05
| | | | PiperOrigin-RevId: 199388675
* Move fold-transpose and fold-conjugate optimizations into stages.Gravatar Eugene Zhulenev2018-06-05
| | | | PiperOrigin-RevId: 199371452
* Move SimplifyAggregation to separate aggregation stage.Gravatar Eugene Zhulenev2018-06-05
| | | | PiperOrigin-RevId: 199346067
* Move ReplaceMulWithSquare to a separate optimizer stage.Gravatar Eugene Zhulenev2018-06-05
| | | | PiperOrigin-RevId: 199338297
* Turns on optimization to convert division of sqrt to multiplication of rsqrtGravatar A. Unique TensorFlower2018-06-04
| | | | PiperOrigin-RevId: 199177029
* Extract FoldMultiplyIntoConv optimization stage.Gravatar A. Unique TensorFlower2018-06-01
| | | | PiperOrigin-RevId: 198953044
* Move reorder-cast-and-transpose optimization to optimization stage.Gravatar A. Unique TensorFlower2018-05-31
| | | | PiperOrigin-RevId: 198788352
* Move RemodeRedundantReshape optimization to a separate stage.Gravatar A. Unique TensorFlower2018-05-31
| | | | PiperOrigin-RevId: 198775276
* Move RemoveInvolution optimization to optimizer stage.Gravatar A. Unique TensorFlower2018-05-30
| | | | PiperOrigin-RevId: 198624394
* Automated g4 rollback of changelist 197868028Gravatar A. Unique TensorFlower2018-05-24
| | | | PiperOrigin-RevId: 197942379
* Automated g4 rollback of changelist 197477959Gravatar A. Unique TensorFlower2018-05-24
| | | | PiperOrigin-RevId: 197868028
* Automated g4 rollback of changelist 197527651Gravatar A. Unique TensorFlower2018-05-22
| | | | PiperOrigin-RevId: 197562826
* convert Pow op into something that is more recognizable, so we can have furtherGravatar A. Unique TensorFlower2018-05-22
| | | | | | optimizations. PiperOrigin-RevId: 197527651
* Add arithmetic optimizer stage that removes LogicalNot that takes a ↵Gravatar A. Unique TensorFlower2018-05-21
| | | | | | | | | | | | | comparison as input, i.e. !(a == b) => a != b !(a != b) => a == b !(a < b) => a >= b !(a <= b) => a > b !(a > b) => a <= b !(a >= b) => a < b PiperOrigin-RevId: 197477959
* Temporarily disable concat rewrite.Gravatar A. Unique TensorFlower2018-05-08
| | | | PiperOrigin-RevId: 195762860
* Optimize idempotent ops, e.g., Snapshot(Snapshot(x)) => Snapshot(x)Gravatar A. Unique TensorFlower2018-05-04
| | | | PiperOrigin-RevId: 195308675
* Enable unary chain hoisting optimization for concat/split/splitv by default.Gravatar A. Unique TensorFlower2018-05-03
| | | | PiperOrigin-RevId: 195297330
* Implement unary chain hoisting optimization for Concat, Split, and SplitV.Gravatar A. Unique TensorFlower2018-04-30
| | | | | | | | | | | | | | | | | | For Concat, hoist prefix chains of unary ops before concatenation, e.g. // Rewrites // Concat({Cos(Exp(a)), Cos(Exp(b)), Cos(Exp(c))}) // into // Cos(Exp(Concat({a, b, c}))). For Split/SplitV hoist unary postfix chains before the split, e.g. // Rewrites // [Cos(Exp(y)) for y in Split(x)] // into // [y for y in Split(Cos(Exp(x)))]. The new optimization is off by default. PiperOrigin-RevId: 194850318
* Adds optimization to convert division of sqrt to multiplication of rsqrtGravatar A. Unique TensorFlower2018-04-26
| | | | PiperOrigin-RevId: 194459152
* Format header guards under tensorflow/core/grappler.Gravatar A. Unique TensorFlower2018-04-26
| | | | PiperOrigin-RevId: 194387041
* Automated g4 rollback of changelist 194261487Gravatar A. Unique TensorFlower2018-04-25
| | | | PiperOrigin-RevId: 194307293
* Automated g4 rollback of changelist 194186080Gravatar A. Unique TensorFlower2018-04-25
| | | | PiperOrigin-RevId: 194261487
* Automated g4 rollback of changelist 194180248Gravatar A. Unique TensorFlower2018-04-24
| | | | PiperOrigin-RevId: 194186080
* Enable concat hoisting optimization by default.Gravatar A. Unique TensorFlower2018-04-24
| | | | PiperOrigin-RevId: 194180248
* Implement hoisting of common prefix of unary ops to concat.Gravatar A. Unique TensorFlower2018-04-24
| | | | PiperOrigin-RevId: 194135148
* Enable all arithmetic optimizations by default.Gravatar A. Unique TensorFlower2018-04-24
| | | | PiperOrigin-RevId: 194106835
* Minimize broadcasts by rewriting a sub-tree of binary associative ops (Add, ↵Gravatar A. Unique TensorFlower2018-04-09
| | | | | | Mul). PiperOrigin-RevId: 192145052
* Fix a few bugs in ArithmeticOptimizer and make it robust to failures of ↵Gravatar A. Unique TensorFlower2018-04-06
| | | | | | shape inference. PiperOrigin-RevId: 191922788
* Fixed handling of control dependencies in the arithmethic optimizerGravatar Benoit Steiner2018-04-04
| | | | PiperOrigin-RevId: 191665098
* Rewrite Add/AddN subgraph, minimizing number of required broadcasts.Gravatar A. Unique TensorFlower2018-04-02
| | | | | | | | | | 1) Collect to AddOpsGroup inputs of symbolically defined shapes, that can be broadcasted to the root shape 2) Rewrite equal shapes with AddN(s) 3) Build Add tree from aggegations of different shapes, minimizing the cost of broadcast PiperOrigin-RevId: 191331566
* Automated g4 rollback of changelist 190801044Gravatar A. Unique TensorFlower2018-03-28
| | | | PiperOrigin-RevId: 190839672
* Make ArithmeticOptimizer robust to failures of shape inference and ↵Gravatar A. Unique TensorFlower2018-03-28
| | | | | | | | individual stages. Get rid of graph annotation and use GraphProperties directly. PiperOrigin-RevId: 190801044
* Simple rewrite to remove negation nodes.Gravatar A. Unique TensorFlower2018-03-19
| | | | PiperOrigin-RevId: 189595735
* Remove identity transpose nodes.Gravatar A. Unique TensorFlower2018-03-16
| | | | PiperOrigin-RevId: 189406518
* Disable Add/AddN rewrite (temp).Gravatar A. Unique TensorFlower2018-03-15
| | | | PiperOrigin-RevId: 189189997
* Enable Add/AddN tree rewrite for symbolically equal shapes.Gravatar A. Unique TensorFlower2018-03-14
| | | | | | | | | 1) Rewrite a tree of Add/AddN ops with a single AddN, if all shapes are symbolically equal 2) Lookup shape properties using GraphProperties instead of direct access to Node attributes PiperOrigin-RevId: 189131726
* Move "hoist common factor out of aggregation" optimizationGravatar A. Unique TensorFlower2018-03-12
| | | | | | | | | | | to a separate stage. 1) Use a new naming scheme for optimized ops, share it with AddOpsRewrite 2) Make sure that tests actually test that optimized nodes exists in a graph PiperOrigin-RevId: 188772892
* Move optimizations to arithmetic optimizer stagesGravatar A. Unique TensorFlower2018-03-09
| | | | | | | | 1) Redundant Bitcast 2) Redundant Cast 3) Remove inverse transpose PiperOrigin-RevId: 188569367
* Add/AddN optimizer/rewriterGravatar A. Unique TensorFlower2018-03-08
| | | | | | | Collapse a sub-graph of Add/AddN operations of fully specified and identical shapes to a single AddN operation. PiperOrigin-RevId: 188392302
* Make sure the same rewrite is not performed multiple times in ↵Gravatar A. Unique TensorFlower2018-01-19
| | | | | | | | ArithmeticOptimizer, and that added nodes are unique. A couple of minor cleanups. PiperOrigin-RevId: 182609552
* Refactor code in arithmetic and dependency optimizersGravatar A. Unique TensorFlower2017-11-27
| | | | | | | | | - get rid of duplicated code for node creation, - make the optimized graph, the NodeMap and FrameMap data members - misc. minor simplifications. Fix a few bugs in NodeMap: Make sure we strip port numbers off inputs before using them as keys to outputs_ or nodes_. PiperOrigin-RevId: 177093144
* Created new shared IsFreeOfSideEffect and ModifiedFrameInfo functions.Gravatar Benoit Steiner2017-11-17
| | | | PiperOrigin-RevId: 176124088