Merge pull request #24367 from alexlyulkov:al/fixed-cumsum-inplace-flag

Fixed CumSum layer inplace flag #24367

When exclusive is false:
dst[i] = dst[i-1] + src[i]
When exclusive is true:
dst[i] = dst[i-1] + src[i-1]
So CumSum layer can be inplace only when exclusive flag is false.
pull/24422/head
alexlyulkov 1 year ago committed by GitHub
parent 7757759205
commit 014e8485b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      modules/dnn/src/layers/cumsum_layer.cpp
  2. 5
      modules/dnn/test/test_onnx_importer.cpp

@ -29,7 +29,7 @@ public:
std::vector<MatShape> &internals) const CV_OVERRIDE
{
Layer::getMemoryShapes(inputs, requiredOutputs, outputs, internals);
return true;
return exclusive_raw == 0;
}
void forward(InputArrayOfArrays inputs_arr, OutputArrayOfArrays outputs_arr, OutputArrayOfArrays internals_arr) CV_OVERRIDE

@ -785,6 +785,11 @@ TEST_P(Test_ONNX_layers, Concatenation)
testONNXModels("concat_const_blobs");
}
TEST_P(Test_ONNX_layers, CumSumExclusiveInplace)
{
testONNXModels("cumsum_exclusive_inplace");
}
TEST_P(Test_ONNX_layers, Eltwise3D)
{
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_LT(2021040000)

Loading…
Cancel
Save