2 # Copyright (C) 2019 The Android Open Source Project
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
17 layout = BoolScalar("layout", False) # NHWC
19 # TEST 1: GENERATE_PROPOSALS_1
21 i1 = Input("scores", "TENSOR_FLOAT32", "{1, 2, 2, 2}") # scores
22 i2 = Input("bboxDeltas", "TENSOR_FLOAT32", "{1, 2, 2, 8}") # bounding box deltas
23 i3 = Input("anchors", "TENSOR_FLOAT32", "{2, 4}") # anchors
24 i4 = Input("imageInfo", "TENSOR_FLOAT32", "{1, 2}") # image info
25 o1 = Output("scoresOut", "TENSOR_FLOAT32", "{4}") # scores out
26 o2 = Output("roiOut", "TENSOR_FLOAT32", "{4, 4}") # roi out
27 o3 = Output("batchSplit", "TENSOR_INT32", "{4}") # batch split out
28 model = model.Operation("GENERATE_PROPOSALS",
29 i1, i2, i3, i4, 4.0, 4.0, -1, -1, 0.30, 1.0, layout).To(o1, o2, o3)
31 quant8 = DataTypeConverter().Identify({
32 i1: ("TENSOR_QUANT8_ASYMM", 0.01, 100),
33 i2: ("TENSOR_QUANT8_ASYMM", 0.05, 128),
34 i3: ("TENSOR_QUANT16_SYMM", 0.125, 0),
35 i4: ("TENSOR_QUANT16_ASYMM", 0.125, 0),
36 o1: ("TENSOR_QUANT8_ASYMM", 0.01, 100),
37 o2: ("TENSOR_QUANT16_ASYMM", 0.125, 0)
45 i2: [ # bounding box deltas
46 0.5, 0.1, 0.1, 0.1, 0.5, 0.1, 0.5, 0.1,
47 -0.25, 0.1, -0.1, -0.1, -0.25, 0.1, 0.2, 0.1,
48 0.4, -0.1, -0.2, 0.2, 0.4, -0.1, -0.2, 0.2,
49 -0.2, -0.2, 0.2, 0.2, -0.2, -0.2, 0.2, 0.2
51 i3: [0, 1, 4, 3, 1, 0, 3, 4], # anchors
52 i4: [32, 32], # image info
56 o1: [0.95, 0.9, 0.85, 0.8], # scores out
58 4.3785973, 2.7571943 , 6.8214025, 7.642805,
59 1.3512788, 0.18965816, 4.648721 , 4.610342,
60 3.1903253, 1.2951627 , 6.8096747, 3.1048374,
61 1.9812691, 3.1571944 , 3.6187308, 8.042806
66 Example((input0, output0)).AddNchw(i1, i2, layout).AddVariations("relaxed", quant8, "float16")
68 # TEST 2: GENERATE_PROPOSALS_2
70 i1 = Input("scores", "TENSOR_FLOAT32", "{2, 4, 4, 4}") # scores
71 i2 = Input("bboxDeltas", "TENSOR_FLOAT32", "{2, 4, 4, 16}") # bounding box deltas
72 i3 = Input("anchors", "TENSOR_FLOAT32", "{4, 4}") # anchors
73 i4 = Input("imageInfo", "TENSOR_FLOAT32", "{2, 2}") # image info
74 o1 = Output("scoresOut", "TENSOR_FLOAT32", "{30}") # scores out
75 o2 = Output("roiOut", "TENSOR_FLOAT32", "{30, 4}") # roi out
76 o3 = Output("batchSplit", "TENSOR_INT32", "{30}") # batch split out
77 model = model.Operation("GENERATE_PROPOSALS",
78 i1, i2, i3, i4, 10.0, 10.0, 32, 16, 0.20, 1.0, layout).To(o1, o2, o3)
80 quant8 = DataTypeConverter().Identify({
81 i1: ("TENSOR_QUANT8_ASYMM", 0.005, 0),
82 i2: ("TENSOR_QUANT8_ASYMM", 0.1, 128),
83 i3: ("TENSOR_QUANT16_SYMM", 0.125, 0),
84 i4: ("TENSOR_QUANT16_ASYMM", 0.125, 0),
85 o1: ("TENSOR_QUANT8_ASYMM", 0.005, 0),
86 o2: ("TENSOR_QUANT16_ASYMM", 0.125, 0)
91 0.885, 0.21 , 0.78 , 0.57 ,
92 0.795, 0.66 , 0.915, 0.615,
93 0.27 , 0.69 , 0.645, 0.945,
94 0.465, 0.345, 0.855, 0.555,
95 0.48 , 0.6 , 0.735, 0.63 ,
96 0.495, 0.03 , 0.12 , 0.225,
97 0.24 , 0.285, 0.51 , 0.315,
98 0.435, 0.255, 0.585, 0.06 ,
99 0.9 , 0.75 , 0.18 , 0.45 ,
100 0.36 , 0.09 , 0.405, 0.15 ,
101 0. , 0.195, 0.075, 0.81 ,
102 0.87 , 0.93 , 0.39 , 0.165,
103 0.825, 0.525, 0.765, 0.105,
104 0.54 , 0.705, 0.675, 0.3 ,
105 0.42 , 0.045, 0.33 , 0.015,
106 0.84 , 0.135, 0.72 , 0.375,
107 0.495, 0.315, 0.195, 0.24 ,
108 0.21 , 0.54 , 0.78 , 0.72 ,
109 0.045, 0.93 , 0.27 , 0.735,
110 0.135, 0.09 , 0.81 , 0.705,
111 0.39 , 0.885, 0.42 , 0.945,
112 0.9 , 0.225, 0.75 , 0.3 ,
113 0.375, 0.63 , 0.825, 0.675,
114 0.015, 0.48 , 0.645, 0.615,
115 0.33 , 0.465, 0.66 , 0.6 ,
116 0.075, 0.84 , 0.285, 0.57 ,
117 0.585, 0.165, 0.06 , 0.36 ,
118 0.795, 0.855, 0.105, 0.45 ,
119 0. , 0.87 , 0.525, 0.255,
120 0.69 , 0.555, 0.15 , 0.345,
121 0.03 , 0.915, 0.405, 0.435,
122 0.765, 0.12 , 0.51 , 0.18
124 i2: [ # bounding box deltas
125 -1.9, 0.4, 1.4, 0.5, -1.5, -0.2, 0.3, 1.2, 0. , -0.6, 0.4, -1.3, 0.8, 0.9, -0.2, 0.8,
126 -0.2, 0. , 0.4, 0.1, -0.2, -1.6, -0.6, -0.1, -1. , 0.6, 0.5, -0.2, -1.7, -1.4, 0.5, -0.1,
127 -1.5, 1.3, -0.7, -0.9, 0.9, 0.2, -0.2, 0. , -0.7, 0.3, -0.4, -0.3, -0.5, -0.3, 1. , -0.7,
128 1.2, -0.3, 0. , 0.3, -0.7, 1. , -0.2, -0.6, -1.3, 0. , 0.3, 0.1, 0.4, 0.2, 2.4, 0. ,
129 0.1, 0. , 0.7, -0.9, 0.1, -0.4, 0.3, -0.3, -0.7, 0.1, 0.7, 0. , -0.3, 1.6, 0. , 1.1,
130 0.4, -0.7, -0.9, 0. , 0. , 0.4, -0.6, 0.4, -1.9, -1.2, 0. , -0.3, 0.2, 0. , 0.1, 0.8,
131 0. , 0.9, -1.7, 0.3, 0.7, -0.7, 0.7, 1.2, -0.4, -0.1, -0.6, 0.6, -0.4, -0.2, 0.3, -0.5,
132 0. , 1. , -0.1, -0.3, -0.8, 0.1, -1.2, -2.4, 0.1, 1.4, 0.4, 0.1, -1.1, 0.4, -0.4, -0.2,
133 0.1, 0. , 0.7, 0.1, -1.3, 0.1, -0.4, -0.2, 0.2, 0.1, -0.8, 0. , -1.4, 2. , -0.6, -0.5,
134 0. , 1. , -1.4, -1.1, 0.6, -0.7, 0.4, 1.1, -1.1, 1.6, -0.3, 0. , -0.7, 0.3, -1.3, 0. ,
135 0. , 0. , -0.3, 0. , -1.1, -1.5, 0.9, -1.4, -0.7, 0.1, -1.4, 0.9, 0.1, 0.2, -0.1, -1.7,
136 0.2, -0.3, -0.9, 1.1, 0.1, 1. , 1. , -0.9, 0.7, 0. , -0.3, 0.2, -0.8, -0.5, 0.6, -1.2,
137 1. , 0.6, 0. , -1.6, 0.1, -1.2, 0.7, 0.8, 0.5, -0.2, -0.8, -1.3, -0.3, 0. , 0. , 0.3,
138 -0.6, -0.3, 1.3, 0.1, 2.2, 1.2, -1.1, 0.1, 1.2, 1.2, 1.3, -0.9, 0.1, -0.5, 0.1, -0.7,
139 -1.3, 1.3, 0.1, 2. , 0. , 0.2, 0.6, 0. , -0.1, -0.4, -0.5, 0.1, -0.6, -0.3, 0.2, -0.4,
140 -0.4, -0.7, -1.8, 0.4, -0.7, 0.4, 1.4, -0.3, 0.8, 0. , 0.4, -0.1, -1. , 0.2, 0.5, -0.6,
141 -1.1, 0.2, 1.6, -0.2, -0.4, -0.9, 0. , 0.3, 0. , 0.3, -0.3, 0.3, 0.3, 1.9, 0.3, -0.5,
142 -0.8, -1.3, -0.8, 0.2, 0.2, -0.4, -0.3, 0.6, 0.2, -0.2, 1.2, 0. , 0. , -0.3, 0.3, -1.5,
143 -1. , -0.3, -0.7, -0.3, -0.4, -1. , -0.6, -0.7, -0.2, 0.6, -0.3, 0.5, -0.2, 0.3, -0.5, -1.7,
144 0. , -0.7, -0.1, -1.5, -0.9, 0.6, 0.3, -0.1, 0.2, 0.5, 0.6, -0.8, -0.3, 0.6, 0.9, -0.3,
145 0.1, -1.7, -1.5, 0. , -0.1, -0.3, 0.7, -0.3, -0.4, 0. , -0.4, -0.3, 0.1, 1.1, 1.8, -0.9,
146 0.6, 0.5, 0.2, -0.7, 0.2, 0.1, 1.2, 2.2, 0.3, 0.6, 0.4, 0.1, 0.2, 0. , -1.1, -0.2,
147 -0.7, 0. , -1.2, 0.6, -0.6, -0.2, -0.4, 0. , 0.7, -1.2, 0.8, 0. , -0.3, 0.2, 0.6, -1. ,
148 -0.1, -0.1, 0. , -0.4, -0.2, 0.4, -1.4, 0.3, 0.1, 1.3, -0.2, -0.7, 0.6, 0.7, 0.6, 0.1,
149 -0.4, 0.1, -0.2, -0.8, 0. , -1.3, 1.2, 1.4, 1.1, 0.5, 0.3, 0. , 0.1, -0.4, 0.5, -0.1,
150 -0.5, 0.3, -0.7, 0.9, -0.1, -0.4, 0.2, -0.8, 1. , 1. , 0.1, 0.1, -0.2, 0. , -0.4, -0.3,
151 -0.8, 0.7, -0.9, -0.3, -0.3, -2.8, 1. , 1.4, 0. , -2.6, 1.1, -1.1, 0.5, 0.1, -0.4, -1.5,
152 0. , 0.3, -0.3, -0.2, 0.7, -0.8, -0.1, 0.5, 0.7, 1.4, -1.2, -1. , -0.6, 0.2, 1.1, -0.9,
153 0.7, -0.4, 0. , 0. , -0.2, -0.2, 0.1, 0. , 0. , -0.7, -0.7, -1.4, -0.9, -0.5, -0.6, 0.4,
154 0.3, 0. , 0.9, -0.2, 0.7, 1.2, 0.5, 0.8, -0.5, 1. , 0.2, -0.5, 1.3, -0.5, 0.3, 1.2,
155 -0.3, -0.1, 1.3, 0.2, 0.6, -1.4, -0.1, -0.2, -0.4, -0.9, 1.2, -0.9, -0.2, -1.2, -1. , -0.2,
156 -1.6, 2.1, -0.6, -0.2, -0.3, 0.5, 0.9, -0.4, 0. , -0.1, 0.1, -0.6, -1. , -0.7, 0.2, -0.2
164 i4: [64, 64, 32, 32], # image info
169 0.945, 0.93 , 0.915, 0.9 , 0.87 , 0.84 , 0.81, 0.795, 0.78, 0.765, 0.75, 0.735,
170 0.72 , 0.705, 0.69 , 0.675, 0.945, 0.915, 0.9 , 0.885, 0.87, 0.84 , 0.81, 0.78,
171 0.735, 0.72 , 0.63 , 0.6 , 0.585, 0.54
174 16.845154 , 2.5170734, 33.154846 , 7.4829264,
175 32.96344 , 40.747444 , 43.836563 , 47.252556 ,
176 0. , 9.143808 , 16.243607 , 14.056192 ,
177 0. , 25.789658 , 25.710022 , 30.210342 ,
178 37.947445 , 20.791668 , 44.452557 , 32.80833 ,
179 30.277609 , 32.21635 , 32.92239 , 38.18365 ,
180 25.885489 , 29.086582 , 31.314512 , 30.913418 ,
181 2.8654022, 5.789658 , 26.734598 , 10.210342 ,
182 0.5408764, 3.5824041, 15.459124 , 5.217595 ,
183 10.753355 , 35.982403 , 15.246645 , 37.617596 ,
184 1.4593601, 23.050154 , 4.1406403, 36.149845 ,
185 0. , 15.6 , 11.068764 , 21.6 ,
186 38.54088 , 35.28549 , 53.45912 , 40.71451 ,
187 26.134256 , 48.358635 , 27.465742 , 64. ,
188 29.96254 , 3.1999998, 33.23746 , 19.2 ,
189 11.653517 , 43.980293 , 48.34648 , 46.41971 ,
190 0. , 26.967152 , 26.748941 , 31.032848 ,
191 28.590324 , 9.050154 , 32. , 22.149847 ,
192 17.828777 , 19.00683 , 32. , 20.99317 ,
193 3.5724945, 7.273454 , 11.627505 , 19.126545 ,
194 4.989658 , 26.8 , 9.410341 , 32. ,
195 15.157195 , 18.00537 , 20.042807 , 25.194632 ,
196 30.889404 , 9.652013 , 32. , 12.347987 ,
197 3.399414 , 3.8000002, 32. , 9.8 ,
198 24.980408 , 10.086582 , 28.61959 , 11.913418 ,
199 13.950423 , 3.884349 , 22.049576 , 6.115651 ,
200 24.259361 , 6.8 , 26.94064 , 22.8 ,
201 3.6538367, 19.475813 , 13.546164 , 28.524187 ,
202 11.947443 , 29.318363 , 18.452557 , 32. ,
203 17.318363 , 0. , 20.281635 , 16.17695
206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
207 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
211 Example((input0, output0)).AddNchw(i1, i2, layout).AddVariations("relaxed", quant8, "float16")