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) {
|
||||
CHECK(!ctx.node_map->NodeExists(name))
|
||||
<< "Node " << name << " already exists in a graph";
|
||||
std::string new_name = name;
|
||||
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();
|
||||
new_node->set_name(name);
|
||||
ctx.node_map->AddNode(name, new_node);
|
||||
new_node->set_name(new_name);
|
||||
ctx.node_map->AddNode(new_name, new_node);
|
||||
return new_node;
|
||||
}
|
||||
|
||||
|
@ -228,6 +228,10 @@ TEST_F(GraphOptimizerStageTest, AddNodes) {
|
||||
NodeDef* empty_node_by_name;
|
||||
TF_CHECK_OK(stage.GetInputNode("Add_2", &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
|
||||
|
Loading…
Reference in New Issue
Block a user