Generate unique node names in AddEmptyNode by appending a suffix instead of crashing.
PiperOrigin-RevId: 322469383 Change-Id: I8062711c8d2bfb6e8c1afec44b28e7d3625a54cb
This commit is contained in:
parent
a344ee9bc6
commit
07b58e0820
@ -84,11 +84,14 @@ NodeDef* AddCopyNode(const GraphOptimizerContext& ctx, const string& name,
|
|||||||
}
|
}
|
||||||
|
|
||||||
NodeDef* AddEmptyNode(const GraphOptimizerContext& ctx, const string& name) {
|
NodeDef* AddEmptyNode(const GraphOptimizerContext& ctx, const string& name) {
|
||||||
CHECK(!ctx.node_map->NodeExists(name))
|
std::string new_name = name;
|
||||||
<< "Node " << name << " already exists in a graph";
|
for (int count = 0; ctx.node_map->NodeExists(new_name); ++count) {
|
||||||
|
LOG(WARNING) << name << " already exists in the graph.";
|
||||||
|
new_name = absl::StrCat(name, "_", count);
|
||||||
|
}
|
||||||
NodeDef* new_node = ctx.optimized_graph->add_node();
|
NodeDef* new_node = ctx.optimized_graph->add_node();
|
||||||
new_node->set_name(name);
|
new_node->set_name(new_name);
|
||||||
ctx.node_map->AddNode(name, new_node);
|
ctx.node_map->AddNode(new_name, new_node);
|
||||||
return new_node;
|
return new_node;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -228,6 +228,10 @@ TEST_F(GraphOptimizerStageTest, AddNodes) {
|
|||||||
NodeDef* empty_node_by_name;
|
NodeDef* empty_node_by_name;
|
||||||
TF_CHECK_OK(stage.GetInputNode("Add_2", &empty_node_by_name));
|
TF_CHECK_OK(stage.GetInputNode("Add_2", &empty_node_by_name));
|
||||||
EXPECT_EQ(empty_node, empty_node_by_name);
|
EXPECT_EQ(empty_node, empty_node_by_name);
|
||||||
|
|
||||||
|
// Check that AddEmptyNode adds a unique suffix if the node already exists.
|
||||||
|
NodeDef* unique_empty_node = stage.AddEmptyNode("Add_2");
|
||||||
|
EXPECT_EQ(unique_empty_node->name(), "Add_2_0");
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
Loading…
Reference in New Issue
Block a user