Files
openvino/docs/template_plugin/tests/functional/op_reference/prelu.cpp
Wilson Seok a8f0109584 Migrate ngraph backend test/activations (#7973)
* Remove fp16 of Convert layer test from skip_tests.config.cpp as it works now

* update repo

* create new PR from PR7849

* remove backend tests of activation operations
2021-10-14 09:38:30 +03:00

421 lines
27 KiB
C++

// Copyright (C) 2021 Intel Corporation
// SPDX-License-Identifier: Apache-2.0
//
#include <gtest/gtest.h>
#include <ngraph_functions/builders.hpp>
#include "openvino/op/prelu.hpp"
#include "base_reference_test.hpp"
using namespace reference_tests;
using namespace ov;
namespace {
struct PreluParams {
template <class IT>
PreluParams(const ov::PartialShape& shape, const ov::element::Type& iType, const std::vector<IT>& iValues, const std::vector<IT>& oValues,
const ov::Shape& slopeShape, const std::vector<IT>& negativeSlopeValues, const std::string& test_name = "")
: pshape(shape),
inType(iType),
outType(iType),
inputData(CreateTensor(iType, iValues)),
refData(CreateTensor(iType, oValues)),
negativeSlopeShape(slopeShape),
negativeSlope(CreateTensor(iType, negativeSlopeValues)),
testcaseName(test_name) {}
ov::PartialShape pshape;
ov::element::Type inType;
ov::element::Type outType;
ov::runtime::Tensor inputData;
ov::runtime::Tensor refData;
ov::Shape negativeSlopeShape;
ov::runtime::Tensor negativeSlope;
std::string testcaseName;
};
class ReferencePreluLayerTest : public testing::TestWithParam<PreluParams>, public CommonReferenceTest {
public:
void SetUp() override {
auto params = GetParam();
function = CreateFunction(params.pshape, params.negativeSlopeShape, params.inType);
inputData = {params.inputData, params.negativeSlope};
refOutData = {params.refData};
}
static std::string getTestCaseName(const testing::TestParamInfo<PreluParams>& obj) {
auto param = obj.param;
std::ostringstream result;
result << "shape=" << param.pshape << "_";
result << "iType=" << param.inType << "_";
result << "oType=" << param.outType << "_";
if (param.testcaseName != "") {
result << "slopeShape=" << param.negativeSlopeShape << "_";
result << param.testcaseName;
} else {
result << "slopeShape=" << param.negativeSlopeShape;
}
return result.str();
}
private:
static std::shared_ptr<Function> CreateFunction(const PartialShape& input_shape, const Shape& slope_shape, const element::Type& input_type) {
const auto in = std::make_shared<op::v0::Parameter>(input_type, input_shape);
const auto SLOPE = std::make_shared<op::v0::Parameter>(input_type, slope_shape);
const auto Prelu = std::make_shared<op::v0::PRelu>(in, SLOPE);
return std::make_shared<ov::Function>(NodeVector {Prelu}, ParameterVector {in, SLOPE});
}
};
TEST_P(ReferencePreluLayerTest, CompareWithRefs) {
Exec();
}
template <element::Type_t IN_ET>
std::vector<PreluParams> generatePreluFloatParams() {
using T = typename element_type_traits<IN_ET>::value_type;
std::vector<PreluParams> preluParams {
PreluParams(ov::PartialShape {6},
IN_ET,
std::vector<T>{1, 2, -3, -4, 5, 6},
std::vector<T>{1, 2, -6, -8, 5, 6},
ov::Shape {1},
std::vector<T>{2}),
PreluParams(ov::PartialShape {6},
IN_ET,
std::vector<T>{1, 2, -3, -4, 5, 6},
std::vector<T>{1, 2, -12, -20, 5, 6},
ov::Shape {6},
std::vector<T>{2, 3, 4, 5, 6, 7}),
PreluParams(ov::PartialShape {3, 2},
IN_ET,
std::vector<T>{-2, 3, -2, 1, -1, 0},
std::vector<T>{0, 3, 0, 1, 0, 0},
ov::Shape {2},
std::vector<T>{0, 1}),
PreluParams(ov::PartialShape {2, 6},
IN_ET,
std::vector<T>{1, 2, -3, -4, 5, 6, 7, 8, -9, -10, 11, 12},
std::vector<T>{1, 2, -9, -16, 5, 6, 7, 8, -27, -40, 11, 12},
ov::Shape {6},
std::vector<T>{1, 2, 3, 4, 5, 6}),
PreluParams(ov::PartialShape {3, 2},
IN_ET,
std::vector<T>{-1, -1, -1, -1, -1, -1},
std::vector<T>{-2, -0.5, -2, -0.5, -2, -0.5},
ov::Shape {2},
std::vector<T>{2, 0.5},
"C_2_const"),
PreluParams(ov::PartialShape {2, 2, 2},
IN_ET,
std::vector<T>{-0.5, -2, -3, -4, -5, -6, -7, -8},
std::vector<T>{0.25, 1, 6, 8, 2.5, 3, 14, 16},
ov::Shape {2},
std::vector<T>{-0.5, -2}),
PreluParams(ov::PartialShape {3, 2},
IN_ET,
std::vector<T>{-2, 3, -2, 1, -1, 0},
std::vector<T>{1, 3, 1, 1, 0.5, 0},
ov::Shape {2},
std::vector<T>{-0.5, -1},
"negative_slope"),
PreluParams(ov::PartialShape {2, 6},
IN_ET,
std::vector<T>{1, 2, -3, -4, 5, 6, 1, 2, -3, -4, 5, 6},
std::vector<T>{1, 2, -6, -8, 5, 6, 1, 2, -12, -8, 5, 6},
ov::Shape {2, 6},
std::vector<T>{2, 2, 2, 2, 2, 2, 1, 1, 4, 2, 1, 1}),
PreluParams(ov::PartialShape {2, 2, 2, 2},
IN_ET,
std::vector<T>{1, 2, -3, -4, 1, 2, -3, -4, 1, 2, -3, -4, 1, 2, -3, -4},
std::vector<T>{1, 2, -3, -8, 1, 2, -9, -16, 1, 2, -3, -8, 1, 2, -9, -16},
ov::Shape {2, 1, 2},
std::vector<T>{1, 2, 3, 4}),
PreluParams(ov::PartialShape {2, 2, 2, 2},
IN_ET,
std::vector<T>{1, 2, -3, -4, 1, 2, -3, -4, 1, 2, -3, -4, 1, 2, -3, -4},
std::vector<T>{1, 2, -3, -8, 1, 2, -9, -16, 1, 2, -3, -8, 1, 2, -9, -16},
ov::Shape {1, 2, 1, 2},
std::vector<T>{1, 2, 3, 4}),
PreluParams(ov::PartialShape {2, 2, 6},
IN_ET,
std::vector<T>{1, 2, -3, -4, -5, 6, -1, -2, -3, -4, -5, -6, 1, 2, -3, -4, 5, 6, -2, 4, -6, -8, 10, 12},
std::vector<T>{1, 2, -9, -16, -5, 6, -2, -2, -9, -16, -5, -42, 1, 2, -9, -16, 5, 6, -2, 4, -18, -32, 10, 12},
ov::Shape {2, 1, 6},
std::vector<T>{2, 1, 3, 4, 1, 7, 1, 2, 3, 4, 5, 6}),
PreluParams(ov::PartialShape {2, 3, 2},
IN_ET,
std::vector<T>{1, 2, -3, -4, -5, 6, -1, -2, -3, -4, -5, -6},
std::vector<T>{1, 2, -9, -16, -5, 6, -1, -4, -9, -16, -25, -36},
ov::Shape {2, 3, 2},
std::vector<T>{2, 1, 3, 4, 1, 7, 1, 2, 3, 4, 5, 6}),
PreluParams(ov::PartialShape {2, 1, 2},
IN_ET,
std::vector<T>{-10, -10, -10, -10},
std::vector<T>{-1, -100, -1, -100},
ov::Shape {2},
std::vector<T>{0.1, 10}),
PreluParams(ov::PartialShape {1, 2, 1, 2},
IN_ET,
std::vector<T>{-10, -10, -10, -10},
std::vector<T>{-1, -1, -100, -100},
ov::Shape {2},
std::vector<T>{0.1, 10}),
PreluParams(ov::PartialShape {1, 5, 1, 1},
IN_ET,
std::vector<T>{-1, 0, -1, -1, -1},
std::vector<T>{-1, 0, -3, -4, -5},
ov::Shape {5},
std::vector<T>{1, 2, 3, 4, 5}),
PreluParams(ov::PartialShape {2, 3, 4, 5},
IN_ET,
std::vector<T>{-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.},
std::vector<T>{-0., -1., -2., -3., -4., -5., -6., -7., -8., -9., -10., -11., -12., -13., -14.,
-15., -16., -17., -18., -19., -20., -21., -22., -23., -24., -25., -26., -27., -28., -29.,
-30., -31., -32., -33., -34., -35., -36., -37., -38., -39., -40., -41., -42., -43., -44.,
-45., -46., -47., -48., -49., -50., -51., -52., -53., -54., -55., -56., -57., -58., -59.,
-60., -61., -62., -63., -64., -65., -66., -67., -68., -69., -70., -71., -72., -73., -74.,
-75., -76., -77., -78., -79., -80., -81., -82., -83., -84., -85., -86., -87., -88., -89.,
-90., -91., -92., -93., -94., -95., -96., -97., -98., -99., -100., -101., -102., -103., -104.,
-105., -106., -107., -108., -109., -110., -111., -112., -113., -114., -115., -116., -117., -118., -119.},
ov::Shape {2, 3, 4, 5},
std::vector<T>{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119}),
PreluParams(ov::PartialShape {2, 3, 4, 5},
IN_ET,
std::vector<T>{-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.},
std::vector<T>{-0., -1., -2., -3., -4., -0., -1., -2., -3., -4., -0., -1., -2., -3., -4., -0., -1., -2.,
-3., -4., -0., -1., -2., -3., -4., -0., -1., -2., -3., -4., -0., -1., -2., -3., -4., -0.,
-1., -2., -3., -4., -0., -1., -2., -3., -4., -0., -1., -2., -3., -4., -0., -1., -2., -3.,
-4., -0., -1., -2., -3., -4., -0., -1., -2., -3., -4., -0., -1., -2., -3., -4., -0., -1.,
-2., -3., -4., -0., -1., -2., -3., -4., -0., -1., -2., -3., -4., -0., -1., -2., -3., -4.,
-0., -1., -2., -3., -4., -0., -1., -2., -3., -4., -0., -1., -2., -3., -4., -0., -1., -2.,
-3., -4., -0., -1., -2., -3., -4., -0., -1., -2., -3., -4.},
ov::Shape {5},
std::vector<T>{0, 1, 2, 3, 4}),
PreluParams(ov::PartialShape {2, 3, 4, 5},
IN_ET,
std::vector<T>{-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.},
std::vector<T>{-0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0.,
-0., -0., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -2., -2., -2., -2., -2., -2., -2., -2., -2., -2., -2., -2., -2., -2.,
-2., -2., -2., -2., -2., -2., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0.,
-0., -0., -0., -0., -0., -0., -0., -0., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -2., -2., -2., -2., -2., -2., -2., -2.,
-2., -2., -2., -2., -2., -2., -2., -2., -2., -2., -2., -2.},
ov::Shape {3},
std::vector<T>{0, 1, 2}),
PreluParams(ov::PartialShape {2, 3, 4, 5},
IN_ET,
std::vector<T>{-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.},
std::vector<T>{-0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0.,
-0., -0., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -2., -2., -2., -2., -2., -2., -2., -2., -2., -2., -2., -2., -2., -2.,
-2., -2., -2., -2., -2., -2., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0.,
-0., -0., -0., -0., -0., -0., -0., -0., -1., -1., -1., -1., -1., -1., -1., -1., -1., -1.,
-1., -1., -1., -1., -1., -1., -1., -1., -1., -1., -2., -2., -2., -2., -2., -2., -2., -2.,
-2., -2., -2., -2., -2., -2., -2., -2., -2., -2., -2., -2.},
ov::Shape {3, 1, 1},
std::vector<T>{0, 1, 2})
};
return preluParams;
}
template <element::Type_t IN_ET>
std::vector<PreluParams> generatePreluI8Params() {
using T = typename element_type_traits<IN_ET>::value_type;
std::vector<PreluParams> preluParams {
PreluParams(ov::PartialShape {6},
IN_ET,
std::vector<T>{1, 2, -3, -4, 5, 6},
std::vector<T>{1, 2, -6, -8, 5, 6},
ov::Shape {1},
std::vector<T>{2}),
PreluParams(ov::PartialShape {6},
IN_ET,
std::vector<T>{1, 2, -3, -4, 5, 6},
std::vector<T>{1, 2, -12, -20, 5, 6},
ov::Shape {6},
std::vector<T>{2, 3, 4, 5, 6, 7}),
PreluParams(ov::PartialShape {3, 2},
IN_ET,
std::vector<T>{-2, 3, -2, 1, -1, 0},
std::vector<T>{0, 3, 0, 1, 0, 0},
ov::Shape {2},
std::vector<T>{0, 1}),
PreluParams(ov::PartialShape {2, 6},
IN_ET,
std::vector<T>{1, 2, -3, -4, 5, 6, 7, 8, -9, -10, 11, 12},
std::vector<T>{1, 2, -9, -16, 5, 6, 7, 8, -27, -40, 11, 12},
ov::Shape {6},
std::vector<T>{1, 2, 3, 4, 5, 6}),
PreluParams(ov::PartialShape {2, 6},
IN_ET,
std::vector<T>{1, 2, -3, -4, 5, 6, 1, 2, -3, -4, 5, 6},
std::vector<T>{1, 2, -6, -8, 5, 6, 1, 2, -12, -8, 5, 6},
ov::Shape {2, 6},
std::vector<T>{2, 2, 2, 2, 2, 2, 1, 1, 4, 2, 1, 1}),
PreluParams(ov::PartialShape {2, 2, 2, 2},
IN_ET,
std::vector<T>{1, 2, -3, -4, 1, 2, -3, -4, 1, 2, -3, -4, 1, 2, -3, -4},
std::vector<T>{1, 2, -3, -8, 1, 2, -9, -16, 1, 2, -3, -8, 1, 2, -9, -16},
ov::Shape {2, 1, 2},
std::vector<T>{1, 2, 3, 4}),
PreluParams(ov::PartialShape {2, 2, 2, 2},
IN_ET,
std::vector<T>{1, 2, -3, -4, 1, 2, -3, -4, 1, 2, -3, -4, 1, 2, -3, -4},
std::vector<T>{1, 2, -3, -8, 1, 2, -9, -16, 1, 2, -3, -8, 1, 2, -9, -16},
ov::Shape {1, 2, 1, 2},
std::vector<T>{1, 2, 3, 4}),
PreluParams(ov::PartialShape {2, 2, 6},
IN_ET,
std::vector<T>{1, 2, -3, -4, -5, 6, -1, -2, -3, -4, -5, -6, 1, 2, -3, -4, 5, 6, -2, 4, -6, -8, 10, 12},
std::vector<T>{1, 2, -9, -16, -5, 6, -2, -2, -9, -16, -5, -42, 1, 2, -9, -16, 5, 6, -2, 4, -18, -32, 10, 12},
ov::Shape {2, 1, 6},
std::vector<T>{2, 1, 3, 4, 1, 7, 1, 2, 3, 4, 5, 6}),
PreluParams(ov::PartialShape {2, 3, 2},
IN_ET,
std::vector<T>{1, 2, -3, -4, -5, 6, -1, -2, -3, -4, -5, -6},
std::vector<T>{1, 2, -9, -16, -5, 6, -1, -4, -9, -16, -25, -36},
ov::Shape {2, 3, 2},
std::vector<T>{2, 1, 3, 4, 1, 7, 1, 2, 3, 4, 5, 6}),
PreluParams(ov::PartialShape {1, 5, 1, 1},
IN_ET,
std::vector<T>{-1, 0, -1, -1, -1},
std::vector<T>{-1, 0, -3, -4, -5},
ov::Shape {5},
std::vector<T>{1, 2, 3, 4, 5}),
PreluParams(ov::PartialShape {2, 3, 4, 5},
IN_ET,
std::vector<T>{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
std::vector<T>{-0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, -14,
-15, -16, -17, -18, -19, -20, -21, -22, -23, -24, -25, -26, -27, -28, -29,
-30, -31, -32, -33, -34, -35, -36, -37, -38, -39, -40, -41, -42, -43, -44,
-45, -46, -47, -48, -49, -50, -51, -52, -53, -54, -55, -56, -57, -58, -59,
-60, -61, -62, -63, -64, -65, -66, -67, -68, -69, -70, -71, -72, -73, -74,
-75, -76, -77, -78, -79, -80, -81, -82, -83, -84, -85, -86, -87, -88, -89,
-90, -91, -92, -93, -94, -95, -96, -97, -98, -99, -100, -101, -102, -103, -104,
-105, -106, -107, -108, -109, -110, -111, -112, -113, -114, -115, -116, -117, -118, -119},
ov::Shape {2, 3, 4, 5},
std::vector<T>{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119}),
PreluParams(ov::PartialShape {2, 3, 4, 5},
IN_ET,
std::vector<T>{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
std::vector<T>{-0, -1, -2, -3, -4, -0, -1, -2, -3, -4, -0, -1, -2, -3, -4, -0, -1, -2,
-3, -4, -0, -1, -2, -3, -4, -0, -1, -2, -3, -4, -0, -1, -2, -3, -4, -0,
-1, -2, -3, -4, -0, -1, -2, -3, -4, -0, -1, -2, -3, -4, -0, -1, -2, -3,
-4, -0, -1, -2, -3, -4, -0, -1, -2, -3, -4, -0, -1, -2, -3, -4, -0, -1,
-2, -3, -4, -0, -1, -2, -3, -4, -0, -1, -2, -3, -4, -0, -1, -2, -3, -4,
-0, -1, -2, -3, -4, -0, -1, -2, -3, -4, -0, -1, -2, -3, -4, -0, -1, -2,
-3, -4, -0, -1, -2, -3, -4, -0, -1, -2, -3, -4},
ov::Shape {5},
std::vector<T>{0, 1, 2, 3, 4}),
PreluParams(ov::PartialShape {2, 3, 4, 5},
IN_ET,
std::vector<T>{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
std::vector<T>{-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0,
-0, -0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
-2, -2, -2, -2, -2, -2, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0,
-0, -0, -0, -0, -0, -0, -0, -0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -2, -2, -2,
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2},
ov::Shape {3},
std::vector<T>{0, 1, 2}),
PreluParams(ov::PartialShape {2, 3, 4, 5},
IN_ET,
std::vector<T>{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
std::vector<T>{-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0,
-0, -0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
-2, -2, -2, -2, -2, -2, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0,
-0, -0, -0, -0, -0, -0, -0, -0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -2, -2, -2,
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2},
ov::Shape {3, 1, 1},
std::vector<T>{0, 1, 2})
};
return preluParams;
}
std::vector<PreluParams> generatePreluCombinedParams() {
const std::vector<std::vector<PreluParams>> preluTypeParams {
generatePreluFloatParams<element::Type_t::f32>(),
generatePreluFloatParams<element::Type_t::f16>(),
generatePreluFloatParams<element::Type_t::bf16>(),
generatePreluI8Params<element::Type_t::i8>()
};
std::vector<PreluParams> combinedParams;
for (const auto& params : preluTypeParams) {
combinedParams.insert(combinedParams.end(), params.begin(), params.end());
}
return combinedParams;
}
INSTANTIATE_TEST_SUITE_P(smoke_Prelu_With_Hardcoded_Refs, ReferencePreluLayerTest,
testing::ValuesIn(generatePreluCombinedParams()), ReferencePreluLayerTest::getTestCaseName);
} // namespace