Browse Source

ReshapeRemovePass_not_remove_reshape_in_dynamic_subgraph

pull/1883/head
lichun 4 years ago
parent
commit
ed143cf998
1 changed files with 19 additions and 0 deletions
  1. +19
    -0
      ge/graph/passes/reshape_remove_pass.cc

+ 19
- 0
ge/graph/passes/reshape_remove_pass.cc View File

@@ -45,6 +45,25 @@ Status ReshapeRemovePass::Run(NodePtr &node) {
int key = kToBeDeleteOp.find(node->GetType()) == kToBeDeleteOp.end() ? kOpNoDelete : kToBeDeleteOp[node->GetType()]; int key = kToBeDeleteOp.find(node->GetType()) == kToBeDeleteOp.end() ? kOpNoDelete : kToBeDeleteOp[node->GetType()];
switch (key) { switch (key) {
case kReshapeType: { case kReshapeType: {
bool is_in_unknown_shape_graph = false;
bool forced_unknown = false;
for (const auto &node : graph->GetDirectNode()) {
GE_CHK_GRAPH_STATUS_RET(ge::NodeUtils::GetNodeUnknownShapeStatus(*node, is_in_unknown_shape_graph),
"[Get][ShapeStatus] of node[%s] failed!", node->GetName().c_str());
if (is_in_unknown_shape_graph) {
break;
}
if (AttrUtils::GetBool(node->GetOpDesc(), ATTR_NAME_FORCE_UNKNOWN_SHAPE, forced_unknown) && forced_unknown) {
GELOGD("node %s was marked as unknown shape.", node->GetName().c_str());
is_in_unknown_shape_graph = true;
break;
}
}
if (is_in_unknown_shape_graph) {
GELOGI("op:%s is in unknown shape graph, can not be deleted.", node->GetName().c_str());
return SUCCESS;
}

bool is_shape_unknown = false; bool is_shape_unknown = false;
if (NodeUtils::GetNodeUnknownShapeStatus(*node, is_shape_unknown) == GRAPH_SUCCESS) { if (NodeUtils::GetNodeUnknownShapeStatus(*node, is_shape_unknown) == GRAPH_SUCCESS) {
if (is_shape_unknown) { if (is_shape_unknown) {


Loading…
Cancel
Save