diff options
Diffstat (limited to 'inference-engine/tests/unit/cnn_network/v3_format_parser_test.cpp')
-rw-r--r-- | inference-engine/tests/unit/cnn_network/v3_format_parser_test.cpp | 95 |
1 files changed, 94 insertions, 1 deletions
diff --git a/inference-engine/tests/unit/cnn_network/v3_format_parser_test.cpp b/inference-engine/tests/unit/cnn_network/v3_format_parser_test.cpp index a8c6e7003..b80d2cb20 100644 --- a/inference-engine/tests/unit/cnn_network/v3_format_parser_test.cpp +++ b/inference-engine/tests/unit/cnn_network/v3_format_parser_test.cpp @@ -1,5 +1,4 @@ // Copyright (C) 2018 Intel Corporation -// // SPDX-License-Identifier: Apache-2.0 // @@ -95,3 +94,97 @@ TEST_F(V3FormatParserTest, DISABLE_conv3DInvalidKernel) { ASSERT_NO_FATAL_FAILURE(assertParseFail(content)); } + +class V2ParserPublicSegments: public InferenceEngine::details::FormatParser { +public: + const std::map<std::string, LayerParseParameters>& getLayerParseParameters() { + return layersParseInfo; + } +}; + +TEST_F(V3FormatParserTest, LargeWeights) { + std::string model = R"V0G0N( +<net name="PVANET" version="3" batch="1"> + <layers> + <layer name="data" type="Input" precision="FP32" id="0"> + <output> + <port id="0"> + <dim>1</dim> + <dim>1024</dim> + </port> + </output> + </layer> + <layer id="1" name="MatMul" precision="FP32" type="FullyConnected"> + <data out-size="800000"/> + <input> + <port id="0"> + <dim>1</dim> + <dim>1024</dim> + </port> + </input> + <output> + <port id="3"> + <dim>1</dim> + <dim>800000</dim> + </port> + </output> + <blobs> + <weights offset="891492352" size="3276800000"/> + <biases offset="4168292352" size="3200000"/> + </blobs> + </layer> + </layers> + <edges> + <edge from-layer="0" from-port="0" to-layer="1" to-port="0"/> + </edges> +</net>)V0G0N"; + + parse(model); + + auto params = ((V2ParserPublicSegments *)parser.get())->getLayerParseParameters(); + ASSERT_NE(params.end(), params.find("MatMul")); + ASSERT_EQ(891492352, params["MatMul"].blobs["weights"].start); + ASSERT_EQ(3276800000, params["MatMul"].blobs["weights"].size); + ASSERT_EQ(4168292352, params["MatMul"].blobs["biases"].start); + ASSERT_EQ(3200000, params["MatMul"].blobs["biases"].size); +} + +TEST_F(V3FormatParserTest, IncorrectWeights) { + std::string model = R"V0G0N( +<net name="PVANET" version="3" batch="1"> + <layers> + <layer name="data" type="Input" precision="FP32" id="0"> + <output> + <port id="0"> + <dim>1</dim> + <dim>1024</dim> + </port> + </output> + </layer> + <layer id="1" name="MatMul" precision="FP32" type="FullyConnected"> + <data out-size="800000"/> + <input> + <port id="0"> + <dim>1</dim> + <dim>1024</dim> + </port> + </input> + <output> + <port id="3"> + <dim>1</dim> + <dim>800000</dim> + </port> + </output> + <blobs> + <weights offset="891492352" size="-64"/> + <biases offset="4168292352" size="3200000"/> + </blobs> + </layer> + </layers> + <edges> + <edge from-layer="0" from-port="0" to-layer="1" to-port="0"/> + </edges> +</net>)V0G0N"; + + assertParseFail(model); +}
\ No newline at end of file |