History log of /external/tensorflow/tensorflow/core/grappler/optimizers/arithmetic_optimizer.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f448189df9b62b6dd141ce14224dbfc0d8f0d11b 20-Jan-2018 A. Unique TensorFlower <gardener@tensorflow.org> Make sure the same rewrite is not performed multiple times in ArithmeticOptimizer, and that added nodes are unique.
A couple of minor cleanups.

PiperOrigin-RevId: 182609552
/external/tensorflow/tensorflow/core/grappler/optimizers/arithmetic_optimizer.h
98ac3f5b7b3942eb0ede7cae1b1afab717b3090a 28-Nov-2017 A. Unique TensorFlower <gardener@tensorflow.org> Refactor code in arithmetic and dependency optimizers
- 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
/external/tensorflow/tensorflow/core/grappler/optimizers/arithmetic_optimizer.h
be4295e796437d18ffb7242942c963a8857e5003 17-Nov-2017 Benoit Steiner <bsteiner@google.com> Created new shared IsFreeOfSideEffect and ModifiedFrameInfo functions.

PiperOrigin-RevId: 176124088
/external/tensorflow/tensorflow/core/grappler/optimizers/arithmetic_optimizer.h
0c19b61a4073aaf191340a02a766ebe238bc7e56 15-Nov-2017 A. Unique TensorFlower <gardener@tensorflow.org> Add a control dependency optimizer to Grappler.

The first two rewrites implemented are:

1. Turn nodes with only control outputs into NoOps, if we know that they are safe to remove. Such nodes can be produced, e.g., by rewrite rules in the arithmetic optimizer.

2. Completely disconnect NoOp nodes with at most 1 input or at most 1 output by rerouting their inputs to their outputs. The restriction on fan-in/fan-out guarantees that we reduce the number of control dependencies in the graph. The two (slightly) non-trivial cases are:

// Case a)
// x --^> +------+ x --^> +---+
// y --^> | NoOp | --^> a ==> y --^> | a |
// ... | | ... | |
// z --^> +------+ z --^> +---+
//
// Case b)
// +------+ --^> a +---+ --^> a
// x --^> | NoOp | --^> b ==> | x | --^> b
// | | ... | | ...
// +------+ --^> c +---+ --^> c

PiperOrigin-RevId: 175780178
/external/tensorflow/tensorflow/core/grappler/optimizers/arithmetic_optimizer.h
6ace5e0494d8142dc67ca0714893afc716125917 03-Nov-2017 A. Unique TensorFlower <gardener@tensorflow.org> * Add optimization to hoist a common factor out of sums of products involving aggregate ops (AddN, Add, Accumulate) or eliminate the aggregation op entirely.
* Replace trivial aggregations of the form x+x+x... with const(N)*x for N > 1.

PiperOrigin-RevId: 174398543
/external/tensorflow/tensorflow/core/grappler/optimizers/arithmetic_optimizer.h
d871fdce70acc165e652c66638943b40ffcda7a3 13-Oct-2017 Jingyue Wu <jingyue@google.com> [Grappler] Remove reshapes whose source shape and destination shape are equal.

Also makes ArithmeticOptimizer::Optimize run shape inference at the beginning,
and clear _output_shapes at the end.

PiperOrigin-RevId: 172133948
/external/tensorflow/tensorflow/core/grappler/optimizers/arithmetic_optimizer.h
e11b9fd32eb5b8f1eb9b8a30dbb08fc1f83fc1dd 06-Oct-2017 Jingyue Wu <jingyue@google.com> [Grappler] Fix a bug with multiple-output nodes.

TrySimplifyAndReshapeUses should return a tensor not a node. Added a regression
test that would have failed without this CL. ArithmeticOptimizer would have
redirected the second input of concat to Split rather than Split:1.

PiperOrigin-RevId: 171220303
/external/tensorflow/tensorflow/core/grappler/optimizers/arithmetic_optimizer.h
f08c961c97c1ec6bb5ee7982b4cc14ba01f3f938 02-Oct-2017 Jingyue Wu <jingyue@google.com> [Grappler] Fold multiply into the weights of a convolution.

This is beneficial when the weights are constant so the multiply can be folded.
For example,

Conv2D
/ \
Transpose weights
|
Mul
/ \
inputs 255.0

||
\/

Conv2D
/ \
Transpose Mul
| / \
| weights 255.0
|
inputs

PiperOrigin-RevId: 170747451
/external/tensorflow/tensorflow/core/grappler/optimizers/arithmetic_optimizer.h
e4134ea1c920b3256c37004fd245a1f43f0254d7 28-Sep-2017 HyoukJoong Lee <hyouklee@google.com> Automated g4 rollback of changelist 170254393

PiperOrigin-RevId: 170291290
/external/tensorflow/tensorflow/core/grappler/optimizers/arithmetic_optimizer.h
fefb5f6f4effddcd87556a67ab9725272759b175 27-Sep-2017 Peter Hawkins <phawkins@google.com> Automated g4 rollback of changelist 169960914

PiperOrigin-RevId: 170254393
/external/tensorflow/tensorflow/core/grappler/optimizers/arithmetic_optimizer.h
bf3857f584c0920f39a29f347fe69762af3381fe 25-Sep-2017 Jingyue Wu <jingyue@google.com> [Grappler] Optimize transposes.

Remove two adjacent Transposes whose permutations are inverse.

PiperOrigin-RevId: 169960914
/external/tensorflow/tensorflow/core/grappler/optimizers/arithmetic_optimizer.h
c247826219dd2541c6aba4578a03a171375d9290 16-Aug-2017 Benoit Steiner <bsteiner@google.com> Added preliminary support for arithmetic simplifications

PiperOrigin-RevId: 165476236
/external/tensorflow/tensorflow/core/grappler/optimizers/arithmetic_optimizer.h