message: Extend nGraph Deconvolution layer support
diff: @@ -1325,19 +1325,6 @@ public:
  const int group = numOutput / outGroupCn;
  if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH) {
  - if (padMode.empty()) {
  - for (int i = 0; i < adjust_pads.size(); i++) {
  - if (pads_end[i] < adjust_pads[i])
  - return false;
  - }
  - } else if (padMode == "SAME") {
  - for (int i = 0; i < adjust_pads.size(); i++) {
  - if (kernel_size[i] < pads_begin[i] + 1 + adjust_pads[i])
  - return false;
  - }
  - } else if (padMode == "VALID")
  - return false;
  -
  return group == 1;
  }
  @@ -2042,20 +2029,16 @@ public:
  ieWeights = std::make_shared<ngraph::op::Constant>(ngraph::element::f32, kernel_shape, newWeights.data);
  }
  std::vector<size_t> paddings_end;
  - if (padMode.empty())
  - {
  - for (int i = 0; i < pads_end.size(); i++) {
  - paddings_end.push_back(pads_end[i] - adjust_pads[i]);
  - }
  - }
  - else if (padMode == "SAME")
  + if (padMode == "SAME")
  {
  for (int i = 0; i < pads_begin.size(); i++) {
  paddings_end.push_back(kernel_size[i] - pads_begin[i] - 1 - adjust_pads[i]);
  }
  + adjust_pads = std::vector<size_t>(pads_begin.size(), 0);
  } else {
  paddings_end = pads_end;
  }
  + ngraph::op::PadType pad_type = padMode == "VALID" ? ngraph::op::PadType::VALID : ngraph::op::PadType::EXPLICIT;
  auto deconv = std::make_shared<ngraph::op::v1::ConvolutionBackpropData>(
  ieInpNode,
  @@ -2063,7 +2046,10 @@ public:
  ngraph::Strides(strides),
  ngraph::CoordinateDiff(std::vector<std::ptrdiff_t>(pads_begin.begin(), pads_begin.end())),
  ngraph::CoordinateDiff(std::vector<std::ptrdiff_t>(paddings_end.begin(), paddings_end.end())),
  - ngraph::Strides(dilations));
  + ngraph::Strides(dilations),
  + pad_type,
  + ngraph::CoordinateDiff(std::vector<std::ptrdiff_t>(adjust_pads.begin(), adjust_pads.end())));
  +
  if (hasBias() || fusedBias)
  {
  std::vector<size_t> shape(deconv->get_shape().size(), 1);
  