Sort control inputs alphabetically in ToGraphDefSubRange.
authorSkye Wanderman-Milne <skyewm@google.com>
Thu, 5 Apr 2018 01:00:27 +0000 (18:00 -0700)
committerTensorFlower Gardener <gardener@tensorflow.org>
Thu, 5 Apr 2018 01:03:07 +0000 (18:03 -0700)
PiperOrigin-RevId: 191677358

tensorflow/core/graph/graph.cc

index a7af5e2..fb8a6c3 100644 (file)
@@ -567,6 +567,11 @@ void Graph::ToGraphDefSubRange(GraphDef* graph_def, int from_node_id) const {
         inputs[edge->dst_input()] = edge;
       }
     }
+    // Sort the control inputs for more predictable serialization.
+    std::sort(inputs.begin() + node->num_inputs(), inputs.end(),
+              [](const Edge* a, const Edge* b) -> bool {
+                return a->src()->name() < b->src()->name();
+              });
     node_def->clear_input();
     node_def->mutable_input()->Reserve(inputs.size());