2020-02-11 22:48:49 +03:00
|
|
|
// Copyright (C) 2018-2020 Intel Corporation
|
|
|
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#include <string>
|
2020-04-13 21:17:23 +03:00
|
|
|
#include "ngraph_reader_tests.hpp"
|
2020-02-11 22:48:49 +03:00
|
|
|
TEST_F(NGraphReaderTests, ReadReLUNetworkWithoutTopologicalOrder) {
|
|
|
|
|
std::string model = R"V0G0N(
|
2020-04-27 21:21:29 +03:00
|
|
|
<net name="Network" version="10">
|
2020-02-11 22:48:49 +03:00
|
|
|
<layers>
|
|
|
|
|
<layer name="output" type="Result" id="2" version="opset1">
|
|
|
|
|
<input>
|
|
|
|
|
<port id="0" precision="FP32">
|
|
|
|
|
<dim>1</dim>
|
|
|
|
|
<dim>3</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
</port>
|
|
|
|
|
</input>
|
|
|
|
|
</layer>
|
|
|
|
|
<layer name="activation" id="1" type="ReLU" version="opset1">
|
|
|
|
|
<input>
|
|
|
|
|
<port id="1" precision="FP32">
|
|
|
|
|
<dim>1</dim>
|
|
|
|
|
<dim>3</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
</port>
|
|
|
|
|
</input>
|
|
|
|
|
<output>
|
|
|
|
|
<port id="2" precision="FP32">
|
|
|
|
|
<dim>1</dim>
|
|
|
|
|
<dim>3</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
</port>
|
|
|
|
|
</output>
|
|
|
|
|
</layer>
|
|
|
|
|
<layer name="in1" type="Parameter" id="0" version="opset1">
|
|
|
|
|
<data element_type="f32" shape="1,3,22,22"/>
|
|
|
|
|
<output>
|
|
|
|
|
<port id="0" precision="FP32">
|
|
|
|
|
<dim>1</dim>
|
|
|
|
|
<dim>3</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
</port>
|
|
|
|
|
</output>
|
|
|
|
|
</layer>
|
|
|
|
|
</layers>
|
|
|
|
|
<edges>
|
|
|
|
|
<edge from-layer="1" from-port="2" to-layer="2" to-port="0"/>
|
|
|
|
|
<edge from-layer="0" from-port="0" to-layer="1" to-port="1"/>
|
|
|
|
|
</edges>
|
|
|
|
|
</net>
|
|
|
|
|
)V0G0N";
|
|
|
|
|
std::string modelV5 = R"V0G0N(
|
2020-04-27 21:21:29 +03:00
|
|
|
<net name="Network" version="5" precision="FP32" batch="1">
|
2020-02-11 22:48:49 +03:00
|
|
|
<layers>
|
|
|
|
|
<layer name="activation" id="1" type="ReLU" precision="FP32">
|
|
|
|
|
<input>
|
|
|
|
|
<port id="1">
|
|
|
|
|
<dim>1</dim>
|
|
|
|
|
<dim>3</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
</port>
|
|
|
|
|
</input>
|
|
|
|
|
<output>
|
|
|
|
|
<port id="2">
|
|
|
|
|
<dim>1</dim>
|
|
|
|
|
<dim>3</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
</port>
|
|
|
|
|
</output>
|
|
|
|
|
</layer>
|
|
|
|
|
<layer name="in1" type="Input" precision="FP32" id="0">
|
|
|
|
|
<output>
|
|
|
|
|
<port id="0">
|
|
|
|
|
<dim>1</dim>
|
|
|
|
|
<dim>3</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
</port>
|
|
|
|
|
</output>
|
|
|
|
|
</layer>
|
|
|
|
|
</layers>
|
|
|
|
|
<edges>
|
|
|
|
|
<edge from-layer="0" from-port="0" to-layer="1" to-port="1"/>
|
|
|
|
|
</edges>
|
|
|
|
|
</net>
|
|
|
|
|
)V0G0N";
|
|
|
|
|
|
|
|
|
|
compareIRs(model, modelV5, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST_F(NGraphReaderTests, ReadReLUNetwork) {
|
|
|
|
|
std::string model = R"V0G0N(
|
2020-04-27 21:21:29 +03:00
|
|
|
<net name="Network" version="10">
|
2020-02-11 22:48:49 +03:00
|
|
|
<layers>
|
|
|
|
|
<layer name="in1" type="Parameter" id="0" version="opset1">
|
|
|
|
|
<data element_type="f32" shape="1,3,22,22"/>
|
|
|
|
|
<output>
|
|
|
|
|
<port id="0" precision="FP32">
|
|
|
|
|
<dim>1</dim>
|
|
|
|
|
<dim>3</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
</port>
|
|
|
|
|
</output>
|
|
|
|
|
</layer>
|
|
|
|
|
<layer name="activation" id="1" type="ReLU" version="opset1">
|
|
|
|
|
<input>
|
|
|
|
|
<port id="1" precision="FP32">
|
|
|
|
|
<dim>1</dim>
|
|
|
|
|
<dim>3</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
</port>
|
|
|
|
|
</input>
|
|
|
|
|
<output>
|
|
|
|
|
<port id="2" precision="FP32">
|
|
|
|
|
<dim>1</dim>
|
|
|
|
|
<dim>3</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
</port>
|
|
|
|
|
</output>
|
|
|
|
|
</layer>
|
|
|
|
|
<layer name="output" type="Result" id="2" version="opset1">
|
|
|
|
|
<input>
|
|
|
|
|
<port id="0" precision="FP32">
|
|
|
|
|
<dim>1</dim>
|
|
|
|
|
<dim>3</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
</port>
|
|
|
|
|
</input>
|
|
|
|
|
</layer>
|
|
|
|
|
</layers>
|
|
|
|
|
<edges>
|
|
|
|
|
<edge from-layer="0" from-port="0" to-layer="1" to-port="1"/>
|
|
|
|
|
<edge from-layer="1" from-port="2" to-layer="2" to-port="0"/>
|
|
|
|
|
</edges>
|
|
|
|
|
</net>
|
|
|
|
|
)V0G0N";
|
|
|
|
|
std::string modelV5 = R"V0G0N(
|
2020-04-27 21:21:29 +03:00
|
|
|
<net name="Network" version="5" precision="FP32" batch="1">
|
2020-02-11 22:48:49 +03:00
|
|
|
<layers>
|
|
|
|
|
<layer name="in1" type="Input" precision="FP32" id="0">
|
|
|
|
|
<output>
|
|
|
|
|
<port id="0">
|
|
|
|
|
<dim>1</dim>
|
|
|
|
|
<dim>3</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
</port>
|
|
|
|
|
</output>
|
|
|
|
|
</layer>
|
|
|
|
|
<layer name="activation" id="1" type="ReLU" precision="FP32">
|
|
|
|
|
<input>
|
|
|
|
|
<port id="1">
|
|
|
|
|
<dim>1</dim>
|
|
|
|
|
<dim>3</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
</port>
|
|
|
|
|
</input>
|
|
|
|
|
<output>
|
|
|
|
|
<port id="2">
|
|
|
|
|
<dim>1</dim>
|
|
|
|
|
<dim>3</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
<dim>22</dim>
|
|
|
|
|
</port>
|
|
|
|
|
</output>
|
|
|
|
|
</layer>
|
|
|
|
|
</layers>
|
|
|
|
|
<edges>
|
|
|
|
|
<edge from-layer="0" from-port="0" to-layer="1" to-port="1"/>
|
|
|
|
|
</edges>
|
|
|
|
|
</net>
|
|
|
|
|
)V0G0N";
|
|
|
|
|
|
|
|
|
|
compareIRs(model, modelV5, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST_F(NGraphReaderTests, ReadReLUScalarNetwork) {
|
|
|
|
|
std::string model = R"V0G0N(
|
2020-04-27 21:21:29 +03:00
|
|
|
<net name="Network" version="10">
|
2020-02-11 22:48:49 +03:00
|
|
|
<layers>
|
|
|
|
|
<layer name="in1" type="Parameter" id="0" version="opset1">
|
|
|
|
|
<data element_type="f32" shape=""/>
|
|
|
|
|
<output>
|
|
|
|
|
<port id="0" precision="FP32" />
|
|
|
|
|
</output>
|
|
|
|
|
</layer>
|
|
|
|
|
<layer name="prior" id="2" type="ReLU" version="opset1">
|
|
|
|
|
<input>
|
|
|
|
|
<port id="1" precision="FP32" />
|
|
|
|
|
</input>
|
|
|
|
|
<output>
|
|
|
|
|
<port id="2" precision="FP32" />
|
|
|
|
|
</output>
|
|
|
|
|
</layer>
|
|
|
|
|
<layer name="output" type="Result" id="3" version="opset1">
|
|
|
|
|
<input>
|
|
|
|
|
<port id="0" precision="FP32" />
|
|
|
|
|
</input>
|
|
|
|
|
</layer>
|
|
|
|
|
</layers>
|
|
|
|
|
<edges>
|
|
|
|
|
<edge from-layer="0" from-port="0" to-layer="2" to-port="1"/>
|
|
|
|
|
<edge from-layer="2" from-port="2" to-layer="3" to-port="0"/>
|
|
|
|
|
</edges>
|
|
|
|
|
</net>
|
|
|
|
|
)V0G0N";
|
|
|
|
|
|
|
|
|
|
Blob::CPtr blob;
|
2020-04-13 21:17:23 +03:00
|
|
|
Core reader;
|
2020-06-24 11:55:17 +03:00
|
|
|
auto cnn = reader.ReadNetwork(model, blob);
|
|
|
|
|
|
2020-04-13 21:17:23 +03:00
|
|
|
IE_SUPPRESS_DEPRECATED_START
|
2020-06-24 11:55:17 +03:00
|
|
|
// convert to old representation
|
2020-07-03 20:57:28 +03:00
|
|
|
getCreatorLayer(cnn.getInputsInfo().begin()->second->getInputData());
|
2020-04-13 21:17:23 +03:00
|
|
|
IE_SUPPRESS_DEPRECATED_END
|
2020-02-11 22:48:49 +03:00
|
|
|
}
|