diff --git a/paddle/framework/block_desc.cc b/paddle/framework/block_desc.cc index e71eb3cb51037e678b5dbd42f73c3524514181d8..e2446bde6d52ff22e495546572c223a5ba4a683c 100644 --- a/paddle/framework/block_desc.cc +++ b/paddle/framework/block_desc.cc @@ -21,16 +21,19 @@ namespace framework { VarDescBind *BlockDescBind::Var(const std::string &name) { need_update_ = true; auto it = vars_.find(name); - PADDLE_ENFORCE(it == vars_.end(), "Duplicated variable %s", name); - auto var = new VarDescBind(name); + if (it != vars_.end()) { + return it->secon.get(); + } + auto *var = new VarDescBind(name); vars_[name].reset(var); return var; } VarDescBind *BlockDescBind::FindVar(const std::string &name) const { auto it = vars_.find(name); - PADDLE_ENFORCE(it != vars_.end(), - "Can not find variable %s in current block.", name); + if (it == vars_.end()) { + return nullptr; + } return it->second.get(); }