add tests for 5 ops based on model zoo (#3062)
[platform/upstream/dldt.git] / inference-engine / tests / functional / inference_engine / ngraph_reader / group_convolution_tests.cpp
1 // Copyright (C) 2018-2020 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 #include <string>
6 #include "ngraph_reader_tests.hpp"
7
8 TEST_F(NGraphReaderTests, ReadGroupConvolutionNetwork) {
9     std::string model = R"V0G0N(
10 <net name="GroupConvolution" version="10">
11         <layers>
12                 <layer id="0" name="in1" type="Parameter" version="opset1">
13                         <data shape="1,64,65,51" element_type="f32"/>
14                         <output>
15                                 <port id="0" precision="FP32">
16                                         <dim>1</dim>
17                                         <dim>64</dim>
18                                         <dim>65</dim>
19                                         <dim>51</dim>
20                                 </port>
21                         </output>
22                 </layer>
23                 <layer id="1" name="const_val" type="Const" version="opset1">
24                         <data offset="0" size="2304" shape="64,1,1,3,3" element_type="f32"/>
25                         <output>
26                                 <port id="1" precision="FP32">
27                                         <dim>64</dim>
28                                         <dim>1</dim>
29                                         <dim>1</dim>
30                                         <dim>3</dim>
31                                         <dim>3</dim>
32                                 </port>
33                         </output>
34                 </layer>
35                 <layer id="2" name="GroupConvolutionOp" type="GroupConvolution" version="opset1">
36                         <data strides="1,1" dilations="1,1" pads_begin="1,1" pads_end="1,1" output_padding="0,0"/>
37                         <input>
38                                 <port id="0">
39                                         <dim>1</dim>
40                                         <dim>64</dim>
41                                         <dim>65</dim>
42                                         <dim>51</dim>
43                                 </port>
44                                 <port id="1">
45                                         <dim>64</dim>
46                                         <dim>1</dim>
47                                         <dim>1</dim>
48                                         <dim>3</dim>
49                                         <dim>3</dim>
50                                 </port>
51                         </input>
52                         <output>
53                                 <port id="2" precision="FP32">
54                                         <dim>1</dim>
55                                         <dim>64</dim>
56                                         <dim>65</dim>
57                                         <dim>51</dim>
58                                 </port>
59                         </output>
60                 </layer>
61                 <layer id="3" name="140/sink_port_0" type="Result" version="opset1">
62                         <input>
63                                 <port id="0">
64                                         <dim>1</dim>
65                                         <dim>64</dim>
66                                         <dim>65</dim>
67                                         <dim>51</dim>
68                                 </port>
69                         </input>
70                 </layer>
71         </layers>
72         <edges>
73                 <edge from-layer="0" from-port="0" to-layer="2" to-port="0"/>
74                 <edge from-layer="1" from-port="1" to-layer="2" to-port="1"/>
75                 <edge from-layer="2" from-port="2" to-layer="3" to-port="0"/>
76         </edges>
77 </net>
78 )V0G0N";
79     std::string modelV7 = R"V0G0N(
80 <net name="GroupConvolution" version="7">
81         <layers>
82                 <layer id="0" name="in1" type="Input" version="opset1">
83                         <data shape="1,64,65,51" element_type="f32"/>
84                         <output>
85                                 <port id="0" precision="FP32">
86                                         <dim>1</dim>
87                                         <dim>64</dim>
88                                         <dim>65</dim>
89                                         <dim>51</dim>
90                                 </port>
91                         </output>
92                 </layer>
93                 <layer id="1" name="GroupConvolutionOp" type="Convolution" version="opset1">
94                         <data group="64" strides="1,1" dilations="1,1" kernel="3,3" pads_begin="1,1" pads_end="1,1" output="64"/>
95                         <input>
96                                 <port id="0">
97                                         <dim>1</dim>
98                                         <dim>64</dim>
99                                         <dim>65</dim>
100                                         <dim>51</dim>
101                                 </port>
102                         </input>
103                         <output>
104                                 <port id="2" precision="FP32">
105                                         <dim>1</dim>
106                                         <dim>64</dim>
107                                         <dim>65</dim>
108                                         <dim>51</dim>
109                                 </port>
110                         </output>
111                         <blobs>
112                                 <weights offset="0" size="2304" precision="FP32"/>
113                         </blobs>
114                 </layer>
115         </layers>
116         <edges>
117                 <edge from-layer="0" from-port="0" to-layer="1" to-port="0"/>
118         </edges>
119 </net>
120 )V0G0N";
121     compareIRs(model, modelV7, 2304);
122 }