diff --git a/paddle/framework/op_registry.h b/paddle/framework/op_registry.h index a561b5f48e27b80ed38a08b584808fade4e74f31..23f641cba2b2a22f12b439577732e987fe3ba66c 100644 --- a/paddle/framework/op_registry.h +++ b/paddle/framework/op_registry.h @@ -222,6 +222,9 @@ class OpRegistry { varmap[var.name()] = idx++; } // ================================================ // + } else { + op_info.proto_ = nullptr; + op_info.checker_ = nullptr; } op_info_map().insert(std::make_pair(op_type, op_info)); // register gradient op diff --git a/paddle/framework/pybind.cc b/paddle/framework/pybind.cc index 3343a51c8d387b7e8d62a36b2d5c61f3fd22cece..56a89d87fd83401b55db2603034f3016149a429a 100644 --- a/paddle/framework/pybind.cc +++ b/paddle/framework/pybind.cc @@ -176,6 +176,9 @@ All parameter, weight, gradient are variables in Paddle. std::vector ret_values; for (auto it = op_info_map.begin(); it != op_info_map.end(); ++it) { const OpProto *proto = it->second.proto_; + if (proto == nullptr) { + continue; + } PADDLE_ENFORCE(proto->IsInitialized(), "OpProto must all be initialized"); std::string str; PADDLE_ENFORCE(proto->SerializeToString(&str),