diff --git a/paddle/fluid/pybind/imperative.cc b/paddle/fluid/pybind/imperative.cc index 93a3137b9991036e161c7863e4acc4b6ccf5a711..3b4deb76c84da375c78e3dd068c660606f0607c9 100644 --- a/paddle/fluid/pybind/imperative.cc +++ b/paddle/fluid/pybind/imperative.cc @@ -741,6 +741,8 @@ void BindImperative(py::module *m_ptr) { .def("_get_program_desc_tracer", &imperative::Tracer::GetProgramDescTracer, py::return_value_policy::reference) + .def("_generate_unique_name", &imperative::Tracer::GenerateUniqueName, + py::arg("key") = "tmp") .def("trace", [](imperative::Tracer &self, const std::string &type, const PyNameVarBaseMap &ins, const PyNameVarBaseMap &outs, diff --git a/paddle/fluid/pybind/op_function_generator.cc b/paddle/fluid/pybind/op_function_generator.cc index 62f1de35ae602b7c800a88de323e22d812bfeb4f..3154ed01867de5d5e8cdb6a1d8d76a713e531ba5 100644 --- a/paddle/fluid/pybind/op_function_generator.cc +++ b/paddle/fluid/pybind/op_function_generator.cc @@ -232,8 +232,7 @@ GenerateOpFunctions(const std::string& module_name) { } std::string function_args = ""; if (input_args == "") { - function_args = - paddle::string::Sprintf(FUNCTION_ARGS_NO_INPUT, input_args); + function_args = FUNCTION_ARGS_NO_INPUT; } else { function_args = paddle::string::Sprintf(FUNCTION_ARGS, input_args); } diff --git a/python/paddle/fluid/unique_name.py b/python/paddle/fluid/unique_name.py index 6129bd1c802e4c18e64df806e8e32f7376af57ca..bf7d5b1edd8459fdf9dedd4092e7a2d9da00e1db 100644 --- a/python/paddle/fluid/unique_name.py +++ b/python/paddle/fluid/unique_name.py @@ -119,11 +119,14 @@ def generate(key): # would save model in static graph mode, and load it in dygraph # mode. Therefore, we keep the variable name of Parameter currently. # -# Please fix me if a better method is found. +# Please fix me if a better method is found. +# +# NOTE(zhiqiu): use c++ unique_name_generator in dygraph mode, +# in order to keep name consistency. def generate_with_ignorable_key(key): - from .framework import in_dygraph_mode + from .framework import in_dygraph_mode, _dygraph_tracer if in_dygraph_mode(): - key = "tmp" + return _dygraph_tracer()._generate_unique_name() return generator(key)