12 TEST_SUITE(
"TensorflowLiteParser_GetSubgraphInputsOutputs")
16 explicit GetSubgraphInputsOutputsMainFixture(
const std::string& inputs,
const std::string& outputs)
21 "operator_codes": [ { "builtin_code": "AVERAGE_POOL_2D" }, { "builtin_code": "CONV_2D" } ], 26 "shape": [ 1, 1, 1, 1 ] , 29 "name": "OutputTensor", 38 "shape": [ 1, 2, 2, 1 ] , 41 "name": "InputTensor", 60 "builtin_options_type": "Pool2DOptions", 68 "fused_activation_function": "NONE" 70 "custom_options_format": "FLEXBUFFERS" 76 "shape": [ 1, 3, 3, 1 ], 79 "name": "ConvInputTensor", 86 "shape": [ 1, 1, 1, 1 ], 89 "name": "ConvOutputTensor", 98 "shape": [ 1, 3, 3, 1 ], 101 "name": "filterTensor", 117 "builtin_options_type": "Conv2DOptions", 122 "fused_activation_function": "NONE" 124 "custom_options_format": "FLEXBUFFERS" 129 "description": "Test Subgraph Inputs Outputs", 133 { "data": [ 2,1,0, 6,2,1, 4,1,2 ], }, 143 struct GetEmptySubgraphInputsOutputsFixture : GetSubgraphInputsOutputsMainFixture
145 GetEmptySubgraphInputsOutputsFixture() : GetSubgraphInputsOutputsMainFixture(
"[ ]",
"[ ]") {}
148 struct GetSubgraphInputsOutputsFixture : GetSubgraphInputsOutputsMainFixture
150 GetSubgraphInputsOutputsFixture() : GetSubgraphInputsOutputsMainFixture(
"[ 1 ]",
"[ 0 ]") {}
153 TEST_CASE_FIXTURE(GetEmptySubgraphInputsOutputsFixture,
"GetEmptySubgraphInputs")
156 m_GraphBinary.size());
157 TfLiteParserImpl::TensorIdRawPtrVector subgraphTensors = TfLiteParserImpl::GetSubgraphInputs(model, 0);
158 CHECK_EQ(0, subgraphTensors.size());
161 TEST_CASE_FIXTURE(GetEmptySubgraphInputsOutputsFixture,
"GetEmptySubgraphOutputs")
164 m_GraphBinary.size());
165 TfLiteParserImpl::TensorIdRawPtrVector subgraphTensors = TfLiteParserImpl::GetSubgraphOutputs(model, 0);
166 CHECK_EQ(0, subgraphTensors.size());
172 m_GraphBinary.size());
173 TfLiteParserImpl::TensorIdRawPtrVector subgraphTensors = TfLiteParserImpl::GetSubgraphInputs(model, 0);
174 CHECK_EQ(1, subgraphTensors.size());
175 CHECK_EQ(1, subgraphTensors[0].first);
176 CheckTensors(subgraphTensors[0].second, 4, { 1, 2, 2, 1 }, tflite::TensorType::TensorType_UINT8, 1,
177 "InputTensor", { -1.2f }, { 25.5f }, { 0.25f }, { 10 });
180 TEST_CASE_FIXTURE(GetSubgraphInputsOutputsFixture,
"GetSubgraphOutputsSimpleQuantized")
183 m_GraphBinary.size());
184 TfLiteParserImpl::TensorIdRawPtrVector subgraphTensors = TfLiteParserImpl::GetSubgraphOutputs(model, 0);
185 CHECK_EQ(1, subgraphTensors.size());
186 CHECK_EQ(0, subgraphTensors[0].first);
187 CheckTensors(subgraphTensors[0].second, 4, { 1, 1, 1, 1 }, tflite::TensorType::TensorType_UINT8, 0,
188 "OutputTensor", { 0.0f }, { 255.0f }, { 1.0f }, { 0 });
191 TEST_CASE_FIXTURE(GetSubgraphInputsOutputsFixture,
"GetSubgraphInputsEmptyMinMax")
194 m_GraphBinary.size());
195 TfLiteParserImpl::TensorIdRawPtrVector subgraphTensors = TfLiteParserImpl::GetSubgraphInputs(model, 1);
196 CHECK_EQ(1, subgraphTensors.size());
197 CHECK_EQ(0, subgraphTensors[0].first);
198 CheckTensors(subgraphTensors[0].second, 4, { 1, 3, 3, 1 }, tflite::TensorType::TensorType_UINT8, 0,
199 "ConvInputTensor", { }, { }, { 1.0f }, { 0 });
205 m_GraphBinary.size());
206 TfLiteParserImpl::TensorIdRawPtrVector subgraphTensors = TfLiteParserImpl::GetSubgraphOutputs(model, 1);
207 CHECK_EQ(1, subgraphTensors.size());
208 CHECK_EQ(1, subgraphTensors[0].first);
209 CheckTensors(subgraphTensors[0].second, 4, { 1, 1, 1, 1 }, tflite::TensorType::TensorType_UINT8, 1,
210 "ConvOutputTensor", { 0.0f }, { 511.0f }, { 2.0f }, { 0 });
213 TEST_CASE(
"GetSubgraphInputsNullModel")
218 TEST_CASE(
"GetSubgraphOutputsNullModel")
223 TEST_CASE_FIXTURE(GetSubgraphInputsOutputsFixture,
"GetSubgraphInputsInvalidSubgraph")
226 m_GraphBinary.size());
230 TEST_CASE_FIXTURE(GetSubgraphInputsOutputsFixture,
"GetSubgraphOutputsInvalidSubgraph")
233 m_GraphBinary.size());
bool ReadStringToBinary()
TEST_CASE_FIXTURE(ClContextControlFixture, "CopyBetweenNeonAndGpu")
armnnSerializer::TensorInfo * TensorRawPtr