Drop comparison of inputs and outputs for SubGraph. (#4716)
SubGraph might have inputs and outputs in different order and still be the same Function. Co-authored-by: Patryk Elszkowski <patryk.elszkowki@intel.com>
This commit is contained in:
parent
18dd574864
commit
1799df4cc8
@ -139,6 +139,10 @@ private:
|
|||||||
///
|
///
|
||||||
Result compare(ngraph::Node* node1, ngraph::Node* node2, std::ostream& err_log);
|
Result compare(ngraph::Node* node1, ngraph::Node* node2, std::ostream& err_log);
|
||||||
|
|
||||||
|
void compare_inputs(ngraph::Node* node1, ngraph::Node* node2, std::ostream& err_log);
|
||||||
|
|
||||||
|
void compare_outputs(ngraph::Node* node1, ngraph::Node* node2, std::ostream& err_log);
|
||||||
|
|
||||||
void add_nodes_inputs_to_queue(ngraph::Node* node1, ngraph::Node* node2);
|
void add_nodes_inputs_to_queue(ngraph::Node* node1, ngraph::Node* node2);
|
||||||
|
|
||||||
//-- DATA --
|
//-- DATA --
|
||||||
@ -1360,7 +1364,9 @@ Comparator::Result Comparator::compare(
|
|||||||
auto subgraph1 = dynamic_cast<ngraph::op::util::SubGraphOp*>(node1);
|
auto subgraph1 = dynamic_cast<ngraph::op::util::SubGraphOp*>(node1);
|
||||||
auto subgraph2 = dynamic_cast<ngraph::op::util::SubGraphOp*>(node2);
|
auto subgraph2 = dynamic_cast<ngraph::op::util::SubGraphOp*>(node2);
|
||||||
|
|
||||||
if (subgraph1 && subgraph2) {
|
const bool subgraph_nodes = subgraph1 && subgraph2;
|
||||||
|
|
||||||
|
if (subgraph_nodes) {
|
||||||
const auto result = subgraph::compare_io(subgraph1, subgraph2);
|
const auto result = subgraph::compare_io(subgraph1, subgraph2);
|
||||||
if (!result.valid) {
|
if (!result.valid) {
|
||||||
return result;
|
return result;
|
||||||
@ -1388,6 +1394,23 @@ Comparator::Result Comparator::compare(
|
|||||||
name(node1) + " and " + to_str(node2->inputs().size()) + " for " + name(node2));
|
name(node1) + " and " + to_str(node2->inputs().size()) + " for " + name(node2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!subgraph_nodes) {
|
||||||
|
compare_inputs(node1, node2, err_log);
|
||||||
|
compare_outputs(node1, node2, err_log);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (should_compare(CmpValues::ATTRIBUTES)) {
|
||||||
|
const auto result = attributes::compare(node1, node2, m_comparition_flags);
|
||||||
|
if (!result.valid) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Result::ok("Check if any minor error was log in to err_log");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Comparator::compare_inputs(ngraph::Node* node1, ngraph::Node* node2, std::ostream& err_log) {
|
||||||
for (size_t i = 0; i < node1->inputs().size(); ++i) {
|
for (size_t i = 0; i < node1->inputs().size(); ++i) {
|
||||||
if (should_compare(CmpValues::CONST_VALUES)) {
|
if (should_compare(CmpValues::CONST_VALUES)) {
|
||||||
using Constant = ngraph::opset1::Constant;
|
using Constant = ngraph::opset1::Constant;
|
||||||
@ -1435,7 +1458,9 @@ Comparator::Result Comparator::compare(
|
|||||||
<< std::endl;
|
<< std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Comparator::compare_outputs(ngraph::Node* node1, ngraph::Node* node2, std::ostream& err_log) {
|
||||||
for (int i = 0; i < node1->outputs().size(); ++i) {
|
for (int i = 0; i < node1->outputs().size(); ++i) {
|
||||||
const auto& tensor1 = node1->output(i).get_tensor();
|
const auto& tensor1 = node1->output(i).get_tensor();
|
||||||
const auto& tensor2 = node2->output(i).get_tensor();
|
const auto& tensor2 = node2->output(i).get_tensor();
|
||||||
@ -1455,15 +1480,6 @@ Comparator::Result Comparator::compare(
|
|||||||
<< i << ") " << node2->output(i).get_partial_shape() << std::endl;
|
<< i << ") " << node2->output(i).get_partial_shape() << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (should_compare(CmpValues::ATTRIBUTES)) {
|
|
||||||
const auto result = attributes::compare(node1, node2, m_comparition_flags);
|
|
||||||
if (!result.valid) {
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return Result::ok("Check if any minor error was log in to err_log");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Comparator::add_nodes_inputs_to_queue(ngraph::Node* node1, ngraph::Node* node2) {
|
void Comparator::add_nodes_inputs_to_queue(ngraph::Node* node1, ngraph::Node* node2) {
|
||||||
|
Loading…
Reference in New Issue
Block a user