|
|
@@ -22,6 +22,7 @@ |
|
|
#include "ir/primitive.h" |
|
|
#include "ir/primitive.h" |
|
|
#include "ir/manager.h" |
|
|
#include "ir/manager.h" |
|
|
#include "ir/func_graph.h" |
|
|
#include "ir/func_graph.h" |
|
|
|
|
|
#include "ir/func_graph_cloner.h" |
|
|
#include "pipeline/parse/parse_base.h" |
|
|
#include "pipeline/parse/parse_base.h" |
|
|
#include "pipeline/parse/parse.h" |
|
|
#include "pipeline/parse/parse.h" |
|
|
#include "./common.h" |
|
|
#include "./common.h" |
|
|
@@ -47,9 +48,10 @@ class PyFuncGraphFetcher { |
|
|
py::function fn = mindspore::parse::python_adapter::CallPyFn(model_path_.c_str(), func_name.c_str(), args...); |
|
|
py::function fn = mindspore::parse::python_adapter::CallPyFn(model_path_.c_str(), func_name.c_str(), args...); |
|
|
mindspore::FuncGraphPtr func_graph = mindspore::parse::ParsePythonCode(fn); |
|
|
mindspore::FuncGraphPtr func_graph = mindspore::parse::ParsePythonCode(fn); |
|
|
if (doResolve_) { |
|
|
if (doResolve_) { |
|
|
std::shared_ptr<mindspore::FuncGraphManager> manager = mindspore::Manage(func_graph, false); |
|
|
|
|
|
|
|
|
std::shared_ptr<mindspore::FuncGraphManager> manager = mindspore::Manage(func_graph, true); |
|
|
mindspore::parse::python_adapter::set_use_signature_in_resolve(false); |
|
|
mindspore::parse::python_adapter::set_use_signature_in_resolve(false); |
|
|
mindspore::parse::ResolveAll(manager); |
|
|
mindspore::parse::ResolveAll(manager); |
|
|
|
|
|
func_graph = BasicClone(func_graph); |
|
|
} |
|
|
} |
|
|
return func_graph; |
|
|
return func_graph; |
|
|
} catch (py::error_already_set& e) { |
|
|
} catch (py::error_already_set& e) { |
|
|
@@ -71,8 +73,9 @@ class PyFuncGraphFetcher { |
|
|
py::function fn = mindspore::parse::python_adapter::GetPyFn(path.c_str(), func_name.c_str()); |
|
|
py::function fn = mindspore::parse::python_adapter::GetPyFn(path.c_str(), func_name.c_str()); |
|
|
mindspore::FuncGraphPtr func_graph = mindspore::parse::ParsePythonCode(fn); |
|
|
mindspore::FuncGraphPtr func_graph = mindspore::parse::ParsePythonCode(fn); |
|
|
if (doResolve_) { |
|
|
if (doResolve_) { |
|
|
std::shared_ptr<mindspore::FuncGraphManager> manager = mindspore::Manage(func_graph, false); |
|
|
|
|
|
|
|
|
std::shared_ptr<mindspore::FuncGraphManager> manager = mindspore::Manage(func_graph, true); |
|
|
mindspore::parse::ResolveAll(manager); |
|
|
mindspore::parse::ResolveAll(manager); |
|
|
|
|
|
func_graph = BasicClone(func_graph); |
|
|
} |
|
|
} |
|
|
return func_graph; |
|
|
return func_graph; |
|
|
} catch (py::error_already_set& e) { |
|
|
} catch (py::error_already_set& e) { |
|
|
|