Do not hoist nodes that modify frame info.
authorA. Unique TensorFlower <gardener@tensorflow.org>
Thu, 3 May 2018 22:42:23 +0000 (15:42 -0700)
committerTensorFlower Gardener <gardener@tensorflow.org>
Fri, 4 May 2018 17:32:20 +0000 (10:32 -0700)
PiperOrigin-RevId: 195322927

tensorflow/core/grappler/optimizers/arithmetic_optimizer.cc

index 29f4907..adfae2e 100644 (file)
@@ -1541,7 +1541,7 @@ class HoistCWiseUnaryChainsStage : public ArithmeticOptimizerStage {
                          const ChainLinkSet& ops) const {
     if (ops.empty()) return true;
     const NodeDef* op0 = ops.begin()->node;
-    if (!IsUnaryElementWise(*op0)) return false;
+    if (ModifiesFrameInfo(*op0) || !IsUnaryElementWise(*op0)) return false;
     for (const auto& link : ops) {
       const NodeDef* op = link.node;
       if (op->device() != root_node.device() || op->op() != op0->op() ||