summaryrefslogtreecommitdiff
path: root/inference-engine/tests/unit/cnn_network/v3_format_parser_test.cpp
diff options
context:
space:
mode:
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.cpp95
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