!168 Bugfix: fix transpose fusion with input&output format check

Merge pull request !168 from zhaoxinxin/development
pull/168/MERGE
王涛 4 years ago committed by Gitee
commit 4369336996

@ -130,6 +130,14 @@ graphStatus TransOpWithoutReshapeFusionPass::GetSubGraphNodesInfo() {
sub_graph_has_reshape_node[i] = true;
break;
}
if (in_node->GetType() == TRANSPOSE || in_node->GetType() == TRANSPOSED) {
auto input_format = in_node->GetOpDesc()->GetInputDescPtr(0)->GetFormat();
auto output_format = in_node->GetOpDesc()->GetOutputDescPtr(0)->GetFormat();
if (input_format == output_format) {
sub_graph_has_reshape_node[i] = true;
break;
}
}
auto out_anchor = iter->first;
GE_CHECK_NOTNULL(out_anchor);

@ -46,6 +46,15 @@ Status TransposeTransDataPass::Run(NodePtr &node) {
if (op_desc->GetType() != TRANSPOSED) {
return SUCCESS;
}
auto input_format = op_desc->GetInputDescPtr(0)->GetFormat();
auto output_format = op_desc->GetOutputDescPtr(0)->GetFormat();
if (input_format == output_format) {
GELOGW("Node %s input format is %s, output format is %s, should not happend. Ignore pass.",
op_desc->GetName().c_str(),
TypeUtils::FormatToSerialString(input_format).c_str(),
TypeUtils::FormatToSerialString(output_format).c_str());
return SUCCESS;
}
if (CheckOneInAndOneOutDataAnchor(node) != SUCCESS) {
return FAILED;
}

Loading…
Cancel
Save