diff --git a/paddle/fluid/framework/ir/xpu/delete_isolated_node_pass.cc b/paddle/fluid/framework/ir/xpu/delete_isolated_node_pass.cc index 55680e284daf36..184d7a313704da 100644 --- a/paddle/fluid/framework/ir/xpu/delete_isolated_node_pass.cc +++ b/paddle/fluid/framework/ir/xpu/delete_isolated_node_pass.cc @@ -100,7 +100,7 @@ void DeleteIsolatedNodePass::CollectReservedPersistableNodeNames( std::unordered_set* reserved_persistable_node_names) const { for (auto* node : graph->Nodes()) { if (!node || node->Name() == "fetch" || node->Name() == "feed") continue; - if (!node->IsVar() || !node->Var()->Persistable()) continue; + if (!node->IsVar() || !node->Var() || !node->Var()->Persistable()) continue; for (auto* out_node : node->outputs) { auto op_type = out_node->Op()->Type(); if (control_flow_op_input_map_.count(op_type) == 0) { @@ -135,7 +135,7 @@ int DeleteIsolatedNodePass::RemoveIsolatedNodes( const std::unordered_set nodes = graph->Nodes(); for (auto* node : nodes) { if (!node || node->Name() == "fetch" || node->Name() == "feed") continue; - if (!node->IsVar() || !node->Var()->Persistable()) continue; + if (!node->IsVar() || !node->Var() || !node->Var()->Persistable()) continue; auto name = node->Var()->Name(); if (reserved_persistable_node_names.count(name) > 0) continue; delete_nodes.insert(node); diff --git a/paddle/fluid/framework/ir/xpu/pass_utils.cc b/paddle/fluid/framework/ir/xpu/pass_utils.cc index 293af7e523f74d..f9844bc8134577 100644 --- a/paddle/fluid/framework/ir/xpu/pass_utils.cc +++ b/paddle/fluid/framework/ir/xpu/pass_utils.cc @@ -64,7 +64,7 @@ int ConvertActivationType(std::string act_type) { Node* FindNodeWithName(Graph* graph, std::string name) { for (auto* node : graph->Nodes()) { - if (node->IsVar() && node->Var()->Name() == name) { + if (node->IsVar() && node->Var() && node->Var()->Name() == name) { return node; } }