Remove Identity nodes if num_inputs * num_outputs <= num_inputs + num_outputs. Except...
authorA. Unique TensorFlower <gardener@tensorflow.org>
Tue, 30 Jan 2018 01:50:56 +0000 (17:50 -0800)
committerTensorFlower Gardener <gardener@tensorflow.org>
Tue, 30 Jan 2018 01:55:17 +0000 (17:55 -0800)
commite3d99c92975efc2010d0e1e2dd4c3eb787a8d67c
treeb25a5fee98ef6de775bf149f1bf0bf24c8c45d32
parenta4b88a5b795d5496bffe4ff80875a5bf0954a4d6
Remove Identity nodes if num_inputs * num_outputs <= num_inputs + num_outputs. Exceptions are Identity nodes after Variable nodes, and Identity nodes after Switch nodes when removing the node would require anchoring a control dependency on the Switch.
Another exception is Identity nodes where inputs or outputs cross a device boundary, since we are not allowed to remove Identity nodes after _Recv that might be inserted in the graph later.

PiperOrigin-RevId: 183759826
tensorflow/core/grappler/optimizers/dependency_optimizer.cc
tensorflow/core/grappler/optimizers/dependency_optimizer.h
tensorflow/core/grappler/optimizers/dependency_optimizer_test.cc
tensorflow/python/debug/lib/debug_gradients_test.py
tensorflow/python/debug/lib/session_debug_grpc_test.py