Implements MaxPoolGradGrad in tf2xla using bitwise trickery. Further detail covered...
authorBrian Patton <bjp@google.com>
Tue, 6 Mar 2018 16:21:10 +0000 (08:21 -0800)
committerTensorFlower Gardener <gardener@tensorflow.org>
Tue, 6 Mar 2018 16:25:02 +0000 (08:25 -0800)
commitf261257ab26802cf3cab7303a76db2fb729e1d01
tree28f6d8f164f2d49cfe4c17c3844b54c03b71531d
parentbec6e47cf93ce3fad041580de4d922f30190b1c7
Implements MaxPoolGradGrad in tf2xla using bitwise trickery. Further detail covered by a comment inside pooling_ops.cc.

Retains 32 bits of gradient precision, but can confuse the backprop source for input cells that are equally maximal at 16 bits. We could in principle be accurate up to 31 bits of input, if we were willing to find gradients one bit at a time, or 24 bits of input 8 gradient bits at a time, etc.

PiperOrigin-RevId: 188025278
tensorflow/compiler/tests/pooling_ops_test.py
tensorflow/compiler/tf2xla/g3doc/cpu_supported_ops.md
tensorflow/compiler/tf2xla/g3doc/gpu_supported_ops.md
tensorflow/compiler/tf2xla/kernels/pooling_ops.cc