13 explicit StridedSliceFixture(
const std::string & inputShape,
14 const std::string & outputShape,
15 const std::string & beginData,
16 const std::string & endData,
17 const std::string & stridesData,
24 "operator_codes": [ { "builtin_code": "STRIDED_SLICE" } ], 28 "shape": )" + inputShape + R"(, 31 "name": "inputTensor", 43 "name": "beginTensor", 59 "name": "stridesTensor", 64 "shape": )" + outputShape + R"( , 67 "name": "outputTensor", 76 "inputs": [ 0, 1, 2, 3 ], 81 "inputs": [ 0, 1, 2, 3 ], 83 "builtin_options_type": "StridedSliceOptions", 85 "begin_mask": )" + std::to_string(beginMask) + R"(, 86 "end_mask": )" + std::to_string(endMask) + R"( 88 "custom_options_format": "FLEXBUFFERS" 94 { "data": )" + beginData + R"(, }, 95 { "data": )" + endData + R"(, }, 96 { "data": )" + stridesData + R"(, }, 105 struct StridedSlice4DFixture : StridedSliceFixture
107 StridedSlice4DFixture() : StridedSliceFixture(
"[ 3, 2, 3, 1 ]",
109 "[ 1,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 ]",
110 "[ 2,0,0,0, 2,0,0,0, 3,0,0,0, 1,0,0,0 ]",
111 "[ 1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0 ]" 117 RunTest<4, armnn::DataType::Float32>(
119 {{
"inputTensor", { 1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 2.0f,
121 3.0f, 3.0f, 3.0f, 4.0f, 4.0f, 4.0f,
123 5.0f, 5.0f, 5.0f, 6.0f, 6.0f, 6.0f }}},
125 {{
"outputTensor", { 3.0f, 3.0f, 3.0f, 4.0f, 4.0f, 4.0f }}});
128 struct StridedSlice4DReverseFixture : StridedSliceFixture
130 StridedSlice4DReverseFixture() : StridedSliceFixture(
"[ 3, 2, 3, 1 ]",
149 RunTest<4, armnn::DataType::Float32>(
151 {{
"inputTensor", { 1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 2.0f,
153 3.0f, 3.0f, 3.0f, 4.0f, 4.0f, 4.0f,
155 5.0f, 5.0f, 5.0f, 6.0f, 6.0f, 6.0f }}},
157 {{
"outputTensor", { 4.0f, 4.0f, 4.0f, 3.0f, 3.0f, 3.0f }}});
160 struct StridedSliceSimpleStrideFixture : StridedSliceFixture
162 StridedSliceSimpleStrideFixture() : StridedSliceFixture(
"[ 3, 2, 3, 1 ]",
164 "[ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 ]",
165 "[ 3,0,0,0, 2,0,0,0, 3,0,0,0, 1,0,0,0 ]",
166 "[ 2,0,0,0, 2,0,0,0, 2,0,0,0, 1,0,0,0 ]" 172 RunTest<4, armnn::DataType::Float32>(
174 {{
"inputTensor", { 1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 2.0f,
176 3.0f, 3.0f, 3.0f, 4.0f, 4.0f, 4.0f,
178 5.0f, 5.0f, 5.0f, 6.0f, 6.0f, 6.0f }}},
180 {{
"outputTensor", { 1.0f, 1.0f,
185 struct StridedSliceSimpleRangeMaskFixture : StridedSliceFixture
187 StridedSliceSimpleRangeMaskFixture() : StridedSliceFixture(
"[ 3, 2, 3, 1 ]",
189 "[ 1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0 ]",
190 "[ 1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0 ]",
191 "[ 1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0 ]",
197 TEST_CASE_FIXTURE(StridedSliceSimpleRangeMaskFixture,
"StridedSliceSimpleRangeMask")
199 RunTest<4, armnn::DataType::Float32>(
201 {{
"inputTensor", { 1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 2.0f,
203 3.0f, 3.0f, 3.0f, 4.0f, 4.0f, 4.0f,
205 5.0f, 5.0f, 5.0f, 6.0f, 6.0f, 6.0f }}},
207 {{
"outputTensor", { 1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 2.0f,
209 3.0f, 3.0f, 3.0f, 4.0f, 4.0f, 4.0f,
211 5.0f, 5.0f, 5.0f, 6.0f, 6.0f, 6.0f }}});
TEST_CASE_FIXTURE(ClContextControlFixture, "CopyBetweenNeonAndGpu")
TEST_SUITE("TensorflowLiteParser_StridedSlice")
void Setup(bool testDynamic=true)