[VPU][IE] Disable ConvertMinimum transformation for Myriad Plugin (#2437)

This commit is contained in:
Andrew Bakalin 2020-10-05 14:18:43 +03:00 committed by GitHub
parent 546c325a1f
commit f8fdd80830
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 4 deletions

View File

@ -619,7 +619,11 @@ CNNLayer::Ptr NodeConverter<ngraph::op::v1::Maximum>::createLayer(const std::sha
template <>
CNNLayer::Ptr NodeConverter<ngraph::op::v1::Minimum>::createLayer(const std::shared_ptr<ngraph::Node>& layer) const {
THROW_IE_EXCEPTION << "Minimum operation should be decomposed";
LayerParams params = {layer->get_friendly_name(), "Eltwise",
details::convertPrecision(layer->get_output_element_type(0))};
auto res = std::make_shared<InferenceEngine::EltwiseLayer>(params);
res->params["operation"] = "min";
return res;
}
template <>

View File

@ -16,9 +16,9 @@ NGRAPH_RTTI_DEFINITION(ngraph::pass::ConvertMinimum, "ConvertMinimum", 0);
ngraph::pass::ConvertMinimum::ConvertMinimum() {
auto minimum = ngraph::pattern::wrap_type<opset1::Minimum>();
ngraph::graph_rewrite_callback callback = [](pattern::Matcher& m) {
ngraph::graph_rewrite_callback callback = [this](pattern::Matcher& m) {
auto minimum = std::dynamic_pointer_cast<ngraph::opset1::Minimum> (m.get_match_root());
if (!minimum) {
if (!minimum || m_transformation_callback(minimum)) {
return false;
}

View File

@ -24,6 +24,7 @@
#include <ngraph/pass/manager.hpp>
#include <ngraph/opsets/opset3.hpp>
#include <ngraph/opsets/opset4.hpp>
#include <ngraph/opsets/opset5.hpp>
#include <transformations/convert_opset3_to_opset2/convert_opset3_to_opset2.hpp>
#include <transformations/convert_opset2_to_opset1/convert_opset2_to_opset1.hpp>
#include <transformations/convert_opset1_to_legacy/convert_opset1_to_legacy.hpp>
@ -155,7 +156,9 @@ ie::ICNNNetwork::Ptr FrontEnd::convertNetwork(ie::ICNNNetwork& network) {
// disable transformations for some cases
const auto transformationsPredicate = [](const std::shared_ptr<const ngraph::Node>& node) -> bool {
const bool casesWithDynamicOrStaticUsage =
std::dynamic_pointer_cast<const ngraph::opset3::Gelu>(node) || std::dynamic_pointer_cast<const ngraph::opset4::SoftPlus>(node);
std::dynamic_pointer_cast<const ngraph::opset3::Gelu>(node) ||
std::dynamic_pointer_cast<const ngraph::opset4::SoftPlus>(node) ||
std::dynamic_pointer_cast<const ngraph::opset5::Minimum>(node);
const bool casesWithOnlyDynamicUsage =
(std::dynamic_pointer_cast<const ngraph::opset3::MatMul>(node) ||