Browse Source

set abstract for new maketuple node

pull/15879/head
Margaret_wangrui 4 years ago
parent
commit
c85f58941c
1 changed files with 14 additions and 2 deletions
  1. +14
    -2
      mindspore/ccsrc/backend/session/ascend_auto_monad.cc

+ 14
- 2
mindspore/ccsrc/backend/session/ascend_auto_monad.cc View File

@@ -1031,7 +1031,13 @@ class AscendAutoMonadConverter {
} }
tuple_inputs.emplace_back(AssignAll(target, value, true, keep, false)); tuple_inputs.emplace_back(AssignAll(target, value, true, keep, false));
} }
return kernel_graph_->NewCNode(tuple_inputs);
auto new_tuple = kernel_graph_->NewCNode(tuple_inputs);
// Set abstract for the MakeTuple node.
abstract::AbstractBasePtrList element_abstracts;
(void)std::transform(tuple_inputs.begin() + 1, tuple_inputs.end(), std::back_inserter(element_abstracts),
[](const AnfNodePtr &input) { return input->abstract(); });
new_tuple->set_abstract(std::make_shared<abstract::AbstractTuple>(element_abstracts));
return new_tuple;
} }


// Return true if the graph is involved with recursive calls. // Return true if the graph is involved with recursive calls.
@@ -1087,7 +1093,13 @@ class AscendAutoMonadConverter {
for (size_t i = 0; i < targets.size(); ++i) { for (size_t i = 0; i < targets.size(); ++i) {
tuple_inputs.emplace_back(Assign(targets[i], sources[i], link, keep, output)); tuple_inputs.emplace_back(Assign(targets[i], sources[i], link, keep, output));
} }
return kernel_graph_->NewCNode(tuple_inputs);
auto new_tuple = kernel_graph_->NewCNode(tuple_inputs);
// Set abstract for the MakeTuple node.
abstract::AbstractBasePtrList element_abstracts;
(void)std::transform(tuple_inputs.begin() + 1, tuple_inputs.end(), std::back_inserter(element_abstracts),
[](const AnfNodePtr &input) { return input->abstract(); });
new_tuple->set_abstract(std::make_shared<abstract::AbstractTuple>(element_abstracts));
return new_tuple;
} }


// Insert UpdateState after input node. // Insert UpdateState after input node.


Loading…
Cancel
Save