mindsporemindsporeccsrcpipelinejitparsedate_couversion.cc代码标注4
ValuePtr ConvertFuncGraph(const py::object &obj) {//转变函数图
MS_LOG(DEBUG) << "Converting FuncGraph object";//输入......
auto func_graph = obj.cast<FuncGraphPtr>();//变量声明
if (func_graph == nullptr) {//如果func_graph为空,执行循环体
MS_LOG(ERROR) << "Resolve FuncGraph error, get ptr is null";//输出......
return nullptr;//返回值
}
auto new_fg = BasicClone(func_graph);
new_fg->set_attr("is_load", MakeValue(true));//指针调用一个函数
return new_fg;//返回值
}
ValuePtr ConvertSlice(const py::object &obj) {//转换片
MS_LOG(DEBUG) << "Converting slice object";//输出......
auto slice_obj = obj.cast<py::slice>();//变量声明,并调用cast函数把返回值赋给这个这个变量
auto convert_func = [obj](const std::string &attr) -> ValuePtr {//变量声明,并用指针把ValuePtr值赋给这个这个变量
auto py_attr = py::getattr(obj, attr.c_str());//变量声明
if (py::isinstance<py::none>(py_attr)) {
return kNone;//返回值
}
if (py::isinstance<py::int_>(py_attr)) {
auto value = py::cast<int64_t>(py_attr);//变量声明,并进行初始化,将右边变量的值赋给左边
return MakeValue(value);//返回值
}
MS_LOG(EXCEPTION) << "Slice should contain only int64_t or none";//输出......
};
ValuePtr start = convert_func("start");//初始化变量
ValuePtr stop = convert_func("stop");//初始化变量
ValuePtr step = convert_func("step");//初始化变量
return std::make_shared<ValueSlice>(start, stop, step);//返回值
}
ValuePtr ConvertCellObjToFuncGraph(const py::object &obj) {
FuncGraphPtr func_graph = ConvertToFuncGraph(obj);
if (func_graph == nullptr) {//如果func_graph为空,则执行方法体
MS_LOG(ERROR) << "Parse resolve function error.";//输出....
return nullptr;
}
// if the cell object has specified bprop, it has user-defined bprop function parse and record it
if (py::hasattr(obj, CUSTOM_BPROP_NAME)) {
bool enable_bprop_debug = py