Reduce number of ops needed to create InstanceNorm (#1896)
* Reduce number of ops needed to create InstanceNorm InstanceNorm in onnx importer creates the same subgraph for Mean twice - once for Variance and once for actual Mean. This change makes InstanceNorm to use single Mean which is shared by numerator and Variance. Also enables IE_CPU.onnx_model_instance_normalization test case * Revert changes to .gitignore
This commit is contained in:
parent
c8aa3a7f2b
commit
d7db4974f3
@ -97,10 +97,15 @@ namespace ngraph
|
||||
std::make_shared<default_opset::Constant>(
|
||||
data.get_element_type(), Shape{}, epsilon);
|
||||
|
||||
Output<ngraph::Node> mean = builder::opset1::mean(data, reduction_axes, true);
|
||||
Output<ngraph::Node> variance =
|
||||
builder::opset1::variance(data, reduction_axes, true);
|
||||
|
||||
auto mean =
|
||||
std::make_shared<default_opset::ReduceMean>(data, reduction_axes, true);
|
||||
auto diff = std::make_shared<default_opset::Subtract>(data, mean);
|
||||
auto variance = std::make_shared<default_opset::ReduceMean>(
|
||||
std::make_shared<default_opset::Power>(
|
||||
diff,
|
||||
default_opset::Constant::create(data.get_element_type(), Shape{}, {2})),
|
||||
reduction_axes,
|
||||
true);
|
||||
const auto sqrt = std::make_shared<default_opset::Sqrt>(
|
||||
std::make_shared<default_opset::Add>(variance, eps_node));
|
||||
|
||||
@ -128,10 +133,9 @@ namespace ngraph
|
||||
std::make_shared<default_opset::Constant>(element::i64, Shape{1}, 1));
|
||||
|
||||
// scale * (data - mean) / sqrt + bias
|
||||
std::shared_ptr<ngraph::Node> result{
|
||||
std::make_shared<default_opset::Subtract>(data, mean)};
|
||||
result = std::make_shared<default_opset::Multiply>(scale, result);
|
||||
result = std::make_shared<default_opset::Divide>(result, sqrt);
|
||||
std::shared_ptr<ngraph::Node> result =
|
||||
std::make_shared<default_opset::Divide>(scale, sqrt);
|
||||
result = std::make_shared<default_opset::Multiply>(diff, result);
|
||||
result = std::make_shared<default_opset::Add>(result, bias);
|
||||
|
||||
return {result};
|
||||
|
@ -1056,7 +1056,6 @@ IE_CPU.fused_clamp_uint32
|
||||
IE_CPU/FlattenTest.flatten
|
||||
|
||||
# Segfault
|
||||
IE_CPU.onnx_model_instance_normalization
|
||||
IE_CPU.onnx_model_reverse_sequence_1_batch_0
|
||||
IE_CPU.onnx_model_reverse_sequence_0_batch_1
|
||||
IE_CPU.cum_sum_2dim_default_axis
|
||||
|
Loading…
Reference in New Issue
Block a user