5 #include <boost/test/unit_test.hpp> 7 #include "../TfLiteParser.hpp" 17 explicit GetSubgraphInputsOutputsMainFixture(
const std::string& inputs,
const std::string& outputs)
22 "operator_codes": [ { "builtin_code": "AVERAGE_POOL_2D" }, { "builtin_code": "CONV_2D" } ], 27 "shape": [ 1, 1, 1, 1 ] , 30 "name": "OutputTensor", 39 "shape": [ 1, 2, 2, 1 ] , 42 "name": "InputTensor", 61 "builtin_options_type": "Pool2DOptions", 69 "fused_activation_function": "NONE" 71 "custom_options_format": "FLEXBUFFERS" 77 "shape": [ 1, 3, 3, 1 ], 80 "name": "ConvInputTensor", 87 "shape": [ 1, 1, 1, 1 ], 90 "name": "ConvOutputTensor", 99 "shape": [ 1, 3, 3, 1 ], 102 "name": "filterTensor", 118 "builtin_options_type": "Conv2DOptions", 123 "fused_activation_function": "NONE" 125 "custom_options_format": "FLEXBUFFERS" 130 "description": "Test Subgraph Inputs Outputs", 134 { "data": [ 2,1,0, 6,2,1, 4,1,2 ], }, 144 struct GetEmptySubgraphInputsOutputsFixture : GetSubgraphInputsOutputsMainFixture
146 GetEmptySubgraphInputsOutputsFixture() : GetSubgraphInputsOutputsMainFixture(
"[ ]",
"[ ]") {}
149 struct GetSubgraphInputsOutputsFixture : GetSubgraphInputsOutputsMainFixture
151 GetSubgraphInputsOutputsFixture() : GetSubgraphInputsOutputsMainFixture(
"[ 1 ]",
"[ 0 ]") {}
156 TfLiteParser::ModelPtr model = TfLiteParser::LoadModelFromBinary(m_GraphBinary.data(), m_GraphBinary.size());
157 TfLiteParser::TensorIdRawPtrVector subgraphTensors = TfLiteParser::GetSubgraphInputs(model, 0);
158 BOOST_CHECK_EQUAL(0, subgraphTensors.size());
163 TfLiteParser::ModelPtr model = TfLiteParser::LoadModelFromBinary(m_GraphBinary.data(), m_GraphBinary.size());
164 TfLiteParser::TensorIdRawPtrVector subgraphTensors = TfLiteParser::GetSubgraphOutputs(model, 0);
165 BOOST_CHECK_EQUAL(0, subgraphTensors.size());
170 TfLiteParser::ModelPtr model = TfLiteParser::LoadModelFromBinary(m_GraphBinary.data(), m_GraphBinary.size());
171 TfLiteParser::TensorIdRawPtrVector subgraphTensors = TfLiteParser::GetSubgraphInputs(model, 0);
172 BOOST_CHECK_EQUAL(1, subgraphTensors.size());
173 BOOST_CHECK_EQUAL(1, subgraphTensors[0].first);
174 CheckTensors(subgraphTensors[0].second, 4, { 1, 2, 2, 1 }, tflite::TensorType::TensorType_UINT8, 1,
175 "InputTensor", { -1.2f }, { 25.5f }, { 0.25f }, { 10 });
180 TfLiteParser::ModelPtr model = TfLiteParser::LoadModelFromBinary(m_GraphBinary.data(), m_GraphBinary.size());
181 TfLiteParser::TensorIdRawPtrVector subgraphTensors = TfLiteParser::GetSubgraphOutputs(model, 0);
182 BOOST_CHECK_EQUAL(1, subgraphTensors.size());
183 BOOST_CHECK_EQUAL(0, subgraphTensors[0].first);
184 CheckTensors(subgraphTensors[0].second, 4, { 1, 1, 1, 1 }, tflite::TensorType::TensorType_UINT8, 0,
185 "OutputTensor", { 0.0f }, { 255.0f }, { 1.0f }, { 0 });
190 TfLiteParser::ModelPtr model = TfLiteParser::LoadModelFromBinary(m_GraphBinary.data(), m_GraphBinary.size());
191 TfLiteParser::TensorIdRawPtrVector subgraphTensors = TfLiteParser::GetSubgraphInputs(model, 1);
192 BOOST_CHECK_EQUAL(1, subgraphTensors.size());
193 BOOST_CHECK_EQUAL(0, subgraphTensors[0].first);
194 CheckTensors(subgraphTensors[0].second, 4, { 1, 3, 3, 1 }, tflite::TensorType::TensorType_UINT8, 0,
195 "ConvInputTensor", { }, { }, { 1.0f }, { 0 });
200 TfLiteParser::ModelPtr model = TfLiteParser::LoadModelFromBinary(m_GraphBinary.data(), m_GraphBinary.size());
201 TfLiteParser::TensorIdRawPtrVector subgraphTensors = TfLiteParser::GetSubgraphOutputs(model, 1);
202 BOOST_CHECK_EQUAL(1, subgraphTensors.size());
203 BOOST_CHECK_EQUAL(1, subgraphTensors[0].first);
204 CheckTensors(subgraphTensors[0].second, 4, { 1, 1, 1, 1 }, tflite::TensorType::TensorType_UINT8, 1,
205 "ConvOutputTensor", { 0.0f }, { 511.0f }, { 2.0f }, { 0 });
220 TfLiteParser::ModelPtr model = TfLiteParser::LoadModelFromBinary(m_GraphBinary.data(), m_GraphBinary.size());
226 TfLiteParser::ModelPtr model = TfLiteParser::LoadModelFromBinary(m_GraphBinary.data(), m_GraphBinary.size());
armnnSerializer::TensorInfo * TensorRawPtr
BOOST_AUTO_TEST_SUITE_END()
BOOST_AUTO_TEST_SUITE(TensorflowLiteParser)
bool ReadStringToBinary()