@idscan/idvc2 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,266 @@
1
+ /*!
2
+ * The buffer module from node.js, for the browser.
3
+ *
4
+ * @author Feross Aboukhadijeh <https://feross.org>
5
+ * @license MIT
6
+ */
7
+
8
+ /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
9
+
10
+ /*!@license Copyright 2013, Heinrich Goebl, License: MIT, see https://github.com/hgoebl/mobile-detect.js*/
11
+
12
+ /*!mobile-detect v1.4.5 2021-03-13*/
13
+
14
+ /**
15
+ * @license
16
+ * Copyright 2021 Google LLC. All Rights Reserved.
17
+ * Licensed under the Apache License, Version 2.0 (the "License");
18
+ * you may not use this file except in compliance with the License.
19
+ * You may obtain a copy of the License at
20
+ *
21
+ * http://www.apache.org/licenses/LICENSE-2.0
22
+ *
23
+ * Unless required by applicable law or agreed to in writing, software
24
+ * distributed under the License is distributed on an "AS IS" BASIS,
25
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26
+ * See the License for the specific language governing permissions and
27
+ * limitations under the License.
28
+ * =============================================================================
29
+ */
30
+
31
+ /**
32
+ * @license
33
+ * Copyright 2017 Google LLC. All Rights Reserved.
34
+ * Licensed under the Apache License, Version 2.0 (the "License");
35
+ * you may not use this file except in compliance with the License.
36
+ * You may obtain a copy of the License at
37
+ *
38
+ * http://www.apache.org/licenses/LICENSE-2.0
39
+ *
40
+ * Unless required by applicable law or agreed to in writing, software
41
+ * distributed under the License is distributed on an "AS IS" BASIS,
42
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
43
+ * See the License for the specific language governing permissions and
44
+ * limitations under the License.
45
+ * =============================================================================
46
+ */
47
+
48
+ /**
49
+ * @license
50
+ * Copyright 2018 Google LLC
51
+ *
52
+ * Use of this source code is governed by an MIT-style
53
+ * license that can be found in the LICENSE file or at
54
+ * https://opensource.org/licenses/MIT.
55
+ * =============================================================================
56
+ */
57
+
58
+ /**
59
+ * @license
60
+ * Copyright 2018 Google LLC. All Rights Reserved.
61
+ * Licensed under the Apache License, Version 2.0 (the "License");
62
+ * you may not use this file except in compliance with the License.
63
+ * You may obtain a copy of the License at
64
+ *
65
+ * http://www.apache.org/licenses/LICENSE-2.0
66
+ *
67
+ * Unless required by applicable law or agreed to in writing, software
68
+ * distributed under the License is distributed on an "AS IS" BASIS,
69
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
70
+ * See the License for the specific language governing permissions and
71
+ * limitations under the License.
72
+ * =============================================================================
73
+ */
74
+
75
+ /**
76
+ * @license
77
+ * Copyright 2019 Google LLC
78
+ *
79
+ * Use of this source code is governed by an MIT-style
80
+ * license that can be found in the LICENSE file or at
81
+ * https://opensource.org/licenses/MIT.
82
+ * =============================================================================
83
+ */
84
+
85
+ /**
86
+ * @license
87
+ * Copyright 2019 Google LLC. All Rights Reserved.
88
+ * Licensed under the Apache License, Version 2.0 (the "License");
89
+ * you may not use this file except in compliance with the License.
90
+ * You may obtain a copy of the License at
91
+ *
92
+ * http://www.apache.org/licenses/LICENSE-2.0
93
+ *
94
+ * Unless required by applicable law or agreed to in writing, software
95
+ * distributed under the License is distributed on an "AS IS" BASIS,
96
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
97
+ * See the License for the specific language governing permissions and
98
+ * limitations under the License.
99
+ *
100
+ * =============================================================================
101
+ */
102
+
103
+ /**
104
+ * @license
105
+ * Copyright 2019 Google LLC. All Rights Reserved.
106
+ * Licensed under the Apache License, Version 2.0 (the "License");
107
+ * you may not use this file except in compliance with the License.
108
+ * You may obtain a copy of the License at
109
+ *
110
+ * http://www.apache.org/licenses/LICENSE-2.0
111
+ *
112
+ * Unless required by applicable law or agreed to in writing, software
113
+ * distributed under the License is distributed on an "AS IS" BASIS,
114
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
115
+ * See the License for the specific language governing permissions and
116
+ * limitations under the License.
117
+ * =============================================================================
118
+ */
119
+
120
+ /**
121
+ * @license
122
+ * Copyright 2020 Google Inc. All Rights Reserved.
123
+ * Licensed under the Apache License, Version 2.0 (the "License");
124
+ * you may not use this file except in compliance with the License.
125
+ * You may obtain a copy of the License at
126
+ *
127
+ * http://www.apache.org/licenses/LICENSE-2.0
128
+ *
129
+ * Unless required by applicable law or agreed to in writing, software
130
+ * distributed under the License is distributed on an "AS IS" BASIS,
131
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132
+ * See the License for the specific language governing permissions and
133
+ * limitations under the License.
134
+ * =============================================================================
135
+ */
136
+
137
+ /**
138
+ * @license
139
+ * Copyright 2020 Google LLC
140
+ *
141
+ * Use of this source code is governed by an MIT-style
142
+ * license that can be found in the LICENSE file or at
143
+ * https://opensource.org/licenses/MIT.
144
+ * =============================================================================
145
+ */
146
+
147
+ /**
148
+ * @license
149
+ * Copyright 2020 Google LLC. All Rights Reserved.
150
+ * Licensed under the Apache License, Version 2.0 (the "License");
151
+ * you may not use this file except in compliance with the License.
152
+ * You may obtain a copy of the License at
153
+ *
154
+ * http://www.apache.org/licenses/LICENSE-2.0
155
+ *
156
+ * Unless required by applicable law or agreed to in writing, software
157
+ * distributed under the License is distributed on an "AS IS" BASIS,
158
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
159
+ * See the License for the specific language governing permissions and
160
+ * limitations under the License.
161
+ * =============================================================================
162
+ */
163
+
164
+ /**
165
+ * @license
166
+ * Copyright 2020 Google LLC. All Rights Reserved.
167
+ * Licensed under the Apache License, Version 2.0 (the "License");
168
+ * you may not use this file except in compliance with the License.
169
+ * You may obtain a copy of the License at
170
+ *
171
+ * https://www.apache.org/licenses/LICENSE-2.0
172
+ *
173
+ * Unless required by applicable law or agreed to in writing, software
174
+ * distributed under the License is distributed on an "AS IS" BASIS,
175
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
176
+ * See the License for the specific language governing permissions and
177
+ * limitations under the License.
178
+ * =============================================================================
179
+ */
180
+
181
+ /**
182
+ * @license
183
+ * Copyright 2020 Google LLC. All Rights Reserved.
184
+ * Licensed under the Apache License, Version 2.0 (the License);
185
+ * you may not use this file except in compliance with the License.
186
+ * You may obtain a copy of the License at
187
+ *
188
+ * http://www.apache.org/licenses/LICENSE-2.0
189
+ *
190
+ * Unless required by applicable law or agreed to in writing, software
191
+ * distributed under the License is distributed on an AS IS BASIS,
192
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
193
+ * See the License for the specific language governing permissions and
194
+ * limitations under the License.
195
+ * =============================================================================
196
+ */
197
+
198
+ /**
199
+ * @license
200
+ * Copyright 2021 Google LLC. All Rights Reserved.
201
+ * Licensed under the Apache License, Version 2.0 (the "License");
202
+ * you may not use this file except in compliance with the License.
203
+ * You may obtain a copy of the License at
204
+ *
205
+ * http://www.apache.org/licenses/LICENSE-2.0
206
+ *
207
+ * Unless required by applicable law or agreed to in writing, software
208
+ * distributed under the License is distributed on an "AS IS" BASIS,
209
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
210
+ * See the License for the specific language governing permissions and
211
+ * limitations under the License.
212
+ * =============================================================================
213
+ */
214
+
215
+ /**
216
+ * @license
217
+ * Copyright 2021 Google LLC. All Rights Reserved.
218
+ * Licensed under the Apache License, Version 2.0 (the "License");
219
+ * you may not use this file except in compliance with the License.
220
+ * You may obtain a copy of the License at
221
+ *
222
+ * https://www.apache.org/licenses/LICENSE-2.0
223
+ *
224
+ * Unless required by applicable law or agreed to in writing, software
225
+ * distributed under the License is distributed on an "AS IS" BASIS,
226
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
227
+ * See the License for the specific language governing permissions and
228
+ * limitations under the License.
229
+ * =============================================================================
230
+ */
231
+
232
+ /**
233
+ * @license
234
+ * Copyright 2022 Google LLC. All Rights Reserved.
235
+ * Licensed under the Apache License, Version 2.0 (the "License");
236
+ * you may not use this file except in compliance with the License.
237
+ * You may obtain a copy of the License at
238
+ *
239
+ * http://www.apache.org/licenses/LICENSE-2.0
240
+ *
241
+ * Unless required by applicable law or agreed to in writing, software
242
+ * distributed under the License is distributed on an "AS IS" BASIS,
243
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
244
+ * See the License for the specific language governing permissions and
245
+ * limitations under the License.
246
+ * =============================================================================
247
+ */
248
+
249
+ /**
250
+ * @license
251
+ * Copyright 2018 Google LLC. All Rights Reserved.
252
+ * Licensed under the Apache License, Version 2.0 (the "License");
253
+ * you may not use this file except in compliance with the License.
254
+ * You may obtain a copy of the License at
255
+ *
256
+ * http://www.apache.org/licenses/LICENSE-2.0
257
+ *
258
+ * Unless required by applicable law or agreed to in writing, software
259
+ * distributed under the License is distributed on an "AS IS" BASIS,
260
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
261
+ * See the License for the specific language governing permissions and
262
+ * limitations under the License.
263
+ * =============================================================================
264
+ */
265
+
266
+ /** @license See the LICENSE file. */
@@ -0,0 +1,105 @@
1
+ import { Tensor } from '@tensorflow/tfjs-core';
2
+ import { ICoord } from '../helpers/geometry';
3
+ import { StepType } from '../environment/stepsDescription';
4
+
5
+ interface StepResultError {
6
+ errorType: string,
7
+ errorVal: 0 | 1,
8
+ }
9
+
10
+ export interface IMRZResults {
11
+ mrzText: string
12
+ }
13
+
14
+ type MRZCore = any;
15
+
16
+ interface IDocumentData {
17
+ fields: any,
18
+ location: IMRZLocation,
19
+ mrzType: { value: number },
20
+ }
21
+
22
+ interface IMrzPredict {
23
+ confidence: number,
24
+ value: string,
25
+ }
26
+
27
+ interface IDecodeResult {
28
+ data: IDocumentData,
29
+ errorDesc: string,
30
+ status: { value: number },
31
+ }
32
+
33
+ interface IMrzTFModel {
34
+ normalize: (input, batchSize) => Tensor,
35
+ predictFromImageSync: (
36
+ img: HTMLCanvasElement,
37
+ countOfExits: number,
38
+ channels: number,
39
+ batchSize: number,
40
+ ) => IMrzPredict[],
41
+ }
42
+
43
+ interface IDecodedField{
44
+ name: string,
45
+ value: string,
46
+ status: 'valid' | 'invalidCS',
47
+ }
48
+
49
+ interface IMrzScanRes {
50
+ status: {
51
+ value: number,
52
+ },
53
+ fields: IDecodedField[],
54
+ count: number,
55
+ location: IMRZLocation,
56
+ errorStatus?: string,
57
+ }
58
+
59
+ interface IMrzStepResult {
60
+ type: StepType,
61
+ status: boolean,
62
+ cancel: boolean,
63
+ touch: boolean,
64
+ image: ImageData,
65
+ error?: StepResultError,
66
+ coords?: IMrzCoords,
67
+ needToCut?: boolean,
68
+ results?: {
69
+ mrzText: string,
70
+ },
71
+ }
72
+
73
+ interface IDetectRes {
74
+ status: boolean,
75
+ results?: { mrzText: string; } | null,
76
+ locations?: IMRZLocation,
77
+ error?: any, // ILicenceError
78
+ }
79
+
80
+ interface ICheckResult extends IDetectRes {
81
+ mrzData: null,
82
+ }
83
+
84
+ export interface IMRZLocation{
85
+ leftTop: ICoord,
86
+ rightTop: ICoord,
87
+ rightBottom: ICoord,
88
+ leftBottom: ICoord,
89
+ }
90
+
91
+ interface IMrzDetected{
92
+ status: boolean,
93
+ location: IMRZLocation,
94
+ results: { mrzText: string; } | null,
95
+ error: {
96
+ error: boolean,
97
+ errorType: string,
98
+ errorVal: number,
99
+ }
100
+ }
101
+
102
+ export interface IMrzCoords{
103
+ locations: IMRZLocation,
104
+ color: 'green' | 'yellow',
105
+ }
Binary file
@@ -0,0 +1 @@
1
+ {"format": "graph-model", "generatedBy": "2.1.0", "convertedBy": "TensorFlow.js Converter v1.7.4", "userDefinedMetadata": {"signature": {"inputs": {"image_input:0": {"name": "image_input:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}, {"size": "224"}, {"size": "224"}, {"size": "3"}]}}}, "outputs": {"Identity:0": {"name": "Identity:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}, {"size": "14"}]}}}}}, "modelTopology": {"node": [{"name": "image_input", "op": "Placeholder", "attr": {"shape": {"shape": {"dim": [{"size": "-1"}, {"size": "224"}, {"size": "224"}, {"size": "3"}]}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv1/separable_conv2d_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "3"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv1/separable_conv2d_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv2/separable_conv2d_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "32"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv2/separable_conv2d_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv6/separable_conv2d_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "64"}, {"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv3/separable_conv2d_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "32"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv3/separable_conv2d_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv6/separable_conv2d_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv4/separable_conv2d_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "32"}, {"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv4/separable_conv2d_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv5/separable_conv2d_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "64"}, {"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv5/separable_conv2d_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv1/separable_conv2d/ReadVariableOp", "op": "Const", "input": ["^image_input"], "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "3"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv2/separable_conv2d/ReadVariableOp", "op": "Const", "input": ["^image_input"], "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv3/separable_conv2d/ReadVariableOp", "op": "Const", "input": ["^image_input"], "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv4/separable_conv2d/ReadVariableOp", "op": "Const", "input": ["^image_input"], "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv5/separable_conv2d/ReadVariableOp", "op": "Const", "input": ["^image_input"], "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "64"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv6/separable_conv2d/ReadVariableOp", "op": "Const", "input": ["^image_input"], "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "64"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/Gpool5/Max/reduction_indices", "op": "Const", "input": ["^image_input"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/angle_model/angle/MatMul/ReadVariableOp", "op": "Const", "input": ["^image_input"], "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}, {"size": "14"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/angle/BiasAdd/ReadVariableOp", "op": "Const", "input": ["^image_input"], "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "14"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/conv1/separable_conv2d/depthwise", "op": "DepthwiseConv2dNative", "input": ["image_input", "StatefulPartitionedCall/angle_model/conv1/separable_conv2d/ReadVariableOp"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "padding": {"s": "VkFMSUQ="}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "StatefulPartitionedCall/angle_model/relu1/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/angle_model/conv1/separable_conv2d/depthwise", "StatefulPartitionedCall/angle_model/conv1/separable_conv2d_weights", "StatefulPartitionedCall/angle_model/conv1/separable_conv2d_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/angle_model/pool1/MaxPool", "op": "MaxPool", "input": ["StatefulPartitionedCall/angle_model/relu1/Relu"], "attr": {"ksize": {"list": {"i": ["1", "2", "2", "1"]}}, "padding": {"s": "VkFMSUQ="}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}}}, {"name": "StatefulPartitionedCall/angle_model/conv2/separable_conv2d/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/angle_model/pool1/MaxPool", "StatefulPartitionedCall/angle_model/conv2/separable_conv2d/ReadVariableOp"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "padding": {"s": "VkFMSUQ="}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "StatefulPartitionedCall/angle_model/relu2/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/angle_model/conv2/separable_conv2d/depthwise", "StatefulPartitionedCall/angle_model/conv2/separable_conv2d_weights", "StatefulPartitionedCall/angle_model/conv2/separable_conv2d_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/angle_model/pool2/MaxPool", "op": "MaxPool", "input": ["StatefulPartitionedCall/angle_model/relu2/Relu"], "attr": {"ksize": {"list": {"i": ["1", "2", "2", "1"]}}, "padding": {"s": "VkFMSUQ="}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}}}, {"name": "StatefulPartitionedCall/angle_model/conv3/separable_conv2d/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/angle_model/pool2/MaxPool", "StatefulPartitionedCall/angle_model/conv3/separable_conv2d/ReadVariableOp"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "padding": {"s": "VkFMSUQ="}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "StatefulPartitionedCall/angle_model/relu3/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/angle_model/conv3/separable_conv2d/depthwise", "StatefulPartitionedCall/angle_model/conv3/separable_conv2d_weights", "StatefulPartitionedCall/angle_model/conv3/separable_conv2d_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/angle_model/pool3/MaxPool", "op": "MaxPool", "input": ["StatefulPartitionedCall/angle_model/relu3/Relu"], "attr": {"ksize": {"list": {"i": ["1", "2", "2", "1"]}}, "padding": {"s": "VkFMSUQ="}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}}}, {"name": "StatefulPartitionedCall/angle_model/conv4/separable_conv2d/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/angle_model/pool3/MaxPool", "StatefulPartitionedCall/angle_model/conv4/separable_conv2d/ReadVariableOp"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "padding": {"s": "VkFMSUQ="}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "StatefulPartitionedCall/angle_model/relu4/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/angle_model/conv4/separable_conv2d/depthwise", "StatefulPartitionedCall/angle_model/conv4/separable_conv2d_weights", "StatefulPartitionedCall/angle_model/conv4/separable_conv2d_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/angle_model/pool4/MaxPool", "op": "MaxPool", "input": ["StatefulPartitionedCall/angle_model/relu4/Relu"], "attr": {"ksize": {"list": {"i": ["1", "2", "2", "1"]}}, "padding": {"s": "VkFMSUQ="}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}}}, {"name": "StatefulPartitionedCall/angle_model/conv5/separable_conv2d/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/angle_model/pool4/MaxPool", "StatefulPartitionedCall/angle_model/conv5/separable_conv2d/ReadVariableOp"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "padding": {"s": "VkFMSUQ="}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "StatefulPartitionedCall/angle_model/relu5/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/angle_model/conv5/separable_conv2d/depthwise", "StatefulPartitionedCall/angle_model/conv5/separable_conv2d_weights", "StatefulPartitionedCall/angle_model/conv5/separable_conv2d_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/angle_model/pool5/MaxPool", "op": "MaxPool", "input": ["StatefulPartitionedCall/angle_model/relu5/Relu"], "attr": {"ksize": {"list": {"i": ["1", "2", "2", "1"]}}, "padding": {"s": "VkFMSUQ="}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}}}, {"name": "StatefulPartitionedCall/angle_model/conv6/separable_conv2d/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/angle_model/pool5/MaxPool", "StatefulPartitionedCall/angle_model/conv6/separable_conv2d/ReadVariableOp"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "padding": {"s": "VkFMSUQ="}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "StatefulPartitionedCall/angle_model/relu6/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/angle_model/conv6/separable_conv2d/depthwise", "StatefulPartitionedCall/angle_model/conv6/separable_conv2d_weights", "StatefulPartitionedCall/angle_model/conv6/separable_conv2d_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/angle_model/Gpool5/Max", "op": "Max", "input": ["StatefulPartitionedCall/angle_model/relu6/Relu", "StatefulPartitionedCall/angle_model/Gpool5/Max/reduction_indices"], "attr": {"Tidx": {"type": "DT_INT32"}, "keep_dims": {"b": false}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/angle_model/angle/BiasAdd", "op": "_FusedMatMul", "input": ["StatefulPartitionedCall/angle_model/Gpool5/Max", "StatefulPartitionedCall/angle_model/angle/MatMul/ReadVariableOp", "StatefulPartitionedCall/angle_model/angle/BiasAdd/ReadVariableOp"], "device": "/device:CPU:0", "attr": {"transpose_b": {"b": false}, "T": {"type": "DT_FLOAT"}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "transpose_a": {"b": false}}}, {"name": "StatefulPartitionedCall/angle_model/angle/Softmax", "op": "Softmax", "input": ["StatefulPartitionedCall/angle_model/angle/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Identity", "op": "Identity", "input": ["StatefulPartitionedCall/angle_model/angle/Softmax"], "attr": {"T": {"type": "DT_FLOAT"}}}], "versions": {"producer": 175}}, "weightsManifest": [{"paths": ["angles20210831.bin"], "weights": [{"name": "StatefulPartitionedCall/angle_model/conv1/separable_conv2d_weights", "shape": [1, 1, 3, 32], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv1/separable_conv2d_bn_offset", "shape": [32], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv2/separable_conv2d_weights", "shape": [1, 1, 32, 32], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv2/separable_conv2d_bn_offset", "shape": [32], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv6/separable_conv2d_weights", "shape": [1, 1, 64, 64], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv3/separable_conv2d_weights", "shape": [1, 1, 32, 32], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv3/separable_conv2d_bn_offset", "shape": [32], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv6/separable_conv2d_bn_offset", "shape": [64], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv4/separable_conv2d_weights", "shape": [1, 1, 32, 64], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv4/separable_conv2d_bn_offset", "shape": [64], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv5/separable_conv2d_weights", "shape": [1, 1, 64, 64], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv5/separable_conv2d_bn_offset", "shape": [64], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv1/separable_conv2d/ReadVariableOp", "shape": [3, 3, 3, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv2/separable_conv2d/ReadVariableOp", "shape": [3, 3, 32, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv3/separable_conv2d/ReadVariableOp", "shape": [3, 3, 32, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv4/separable_conv2d/ReadVariableOp", "shape": [3, 3, 32, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv5/separable_conv2d/ReadVariableOp", "shape": [3, 3, 64, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/conv6/separable_conv2d/ReadVariableOp", "shape": [3, 3, 64, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/Gpool5/Max/reduction_indices", "shape": [2], "dtype": "int32"}, {"name": "StatefulPartitionedCall/angle_model/angle/MatMul/ReadVariableOp", "shape": [64, 14], "dtype": "float32"}, {"name": "StatefulPartitionedCall/angle_model/angle/BiasAdd/ReadVariableOp", "shape": [14], "dtype": "float32"}]}]}