Fix switch layer dynamic cell

Signed-off-by: zjun <zhangjun0@huawei.com>
pull/12889/head
zjun 4 years ago
parent f5766917ea
commit 1ce1ec8063

@ -1810,8 +1810,17 @@ bool PynativeExecutor::ParseAssignExprNode(const std::shared_ptr<parse::ParseAst
if (func_name == parse::NAMED_PRIMITIVE_SUBSCRIPT) {
py::object slice_node = parse::python_adapter::GetPyObjAttr(func_node, parse::NAMED_PRIMITIVE_SLICE);
py::object value_in_slice_node = parse::python_adapter::GetPyObjAttr(slice_node, parse::NAMED_PRIMITIVE_VALUE);
if (py::isinstance<py::none>(value_in_slice_node)) {
MS_LOG(DEBUG) << "Parse value node is none!";
return false;
}
const auto &node_name_in_slice_node = ParseNodeName(ast, value_in_slice_node, parse::AST_MAIN_TYPE_EXPR);
if (cell_input_args_.find(node_name_in_slice_node) != cell_input_args_.end()) {
std::string id;
if (py::hasattr(value_in_slice_node, "id")) {
id = py::cast<std::string>(value_in_slice_node.attr("id"));
}
if (cell_input_args_.find(node_name_in_slice_node) != cell_input_args_.end() ||
(!id.empty() && cell_input_args_.find(id) != cell_input_args_.end())) {
return true;
}
}

Loading…
Cancel
Save