@@ -201,11 +201,54 @@ <h1>Source code for deepsparse.utils.data</h1><div class="highlight"><pre>
201
201
< span class ="kn "> from</ span > < span class ="nn "> deepsparse.utils.log</ span > < span class ="kn "> import</ span > < span class ="n "> log_init</ span >
202
202
203
203
204
- < span class ="n "> __all__</ span > < span class ="o "> =</ span > < span class ="p "> [</ span > < span class ="s2 "> "verify_outputs"</ span > < span class ="p "> ]</ span >
204
+ < span class ="n "> __all__</ span > < span class ="o "> =</ span > < span class ="p "> [</ span >
205
+ < span class ="s2 "> "arrays_to_bytes"</ span > < span class ="p "> ,</ span >
206
+ < span class ="s2 "> "bytes_to_arrays"</ span > < span class ="p "> ,</ span >
207
+ < span class ="s2 "> "verify_outputs"</ span > < span class ="p "> ,</ span >
208
+ < span class ="p "> ]</ span >
205
209
206
210
< span class ="n "> log</ span > < span class ="o "> =</ span > < span class ="n "> log_init</ span > < span class ="p "> (</ span > < span class ="n "> os</ span > < span class ="o "> .</ span > < span class ="n "> path</ span > < span class ="o "> .</ span > < span class ="n "> basename</ span > < span class ="p "> (</ span > < span class ="vm "> __file__</ span > < span class ="p "> ))</ span >
207
211
208
212
213
+ < div class ="viewcode-block " id ="arrays_to_bytes "> < a class ="viewcode-back " href ="../../../api/deepsparse.utils.html#deepsparse.utils.data.arrays_to_bytes "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> arrays_to_bytes</ span > < span class ="p "> (</ span > < span class ="n "> arrays</ span > < span class ="p "> :</ span > < span class ="n "> List</ span > < span class ="p "> [</ span > < span class ="n "> numpy</ span > < span class ="o "> .</ span > < span class ="n "> array</ span > < span class ="p "> ])</ span > < span class ="o "> -></ span > < span class ="nb "> bytearray</ span > < span class ="p "> :</ span >
214
+ < span class ="sd "> """</ span >
215
+ < span class ="sd "> :param arrays: List of numpy arrays to serialize as bytes</ span >
216
+ < span class ="sd "> :return: bytearray representation of list of numpy arrays</ span >
217
+ < span class ="sd "> """</ span >
218
+ < span class ="n "> to_return</ span > < span class ="o "> =</ span > < span class ="nb "> bytearray</ span > < span class ="p "> ()</ span >
219
+ < span class ="k "> for</ span > < span class ="n "> arr</ span > < span class ="ow "> in</ span > < span class ="n "> arrays</ span > < span class ="p "> :</ span >
220
+ < span class ="n "> arr_dtype</ span > < span class ="o "> =</ span > < span class ="nb "> bytearray</ span > < span class ="p "> (</ span > < span class ="nb "> str</ span > < span class ="p "> (</ span > < span class ="n "> arr</ span > < span class ="o "> .</ span > < span class ="n "> dtype</ span > < span class ="p "> ),</ span > < span class ="s2 "> "utf-8"</ span > < span class ="p "> )</ span >
221
+ < span class ="n "> arr_shape</ span > < span class ="o "> =</ span > < span class ="nb "> bytearray</ span > < span class ="p "> (</ span > < span class ="s2 "> ","</ span > < span class ="o "> .</ span > < span class ="n "> join</ span > < span class ="p "> ([</ span > < span class ="nb "> str</ span > < span class ="p "> (</ span > < span class ="n "> a</ span > < span class ="p "> )</ span > < span class ="k "> for</ span > < span class ="n "> a</ span > < span class ="ow "> in</ span > < span class ="n "> arr</ span > < span class ="o "> .</ span > < span class ="n "> shape</ span > < span class ="p "> ]),</ span > < span class ="s2 "> "utf-8"</ span > < span class ="p "> )</ span >
222
+ < span class ="n "> sep</ span > < span class ="o "> =</ span > < span class ="nb "> bytearray</ span > < span class ="p "> (</ span > < span class ="s2 "> "|"</ span > < span class ="p "> ,</ span > < span class ="s2 "> "utf-8"</ span > < span class ="p "> )</ span >
223
+ < span class ="n "> arr_bytes</ span > < span class ="o "> =</ span > < span class ="n "> arr</ span > < span class ="o "> .</ span > < span class ="n "> ravel</ span > < span class ="p "> ()</ span > < span class ="o "> .</ span > < span class ="n "> tobytes</ span > < span class ="p "> ()</ span >
224
+ < span class ="n "> to_return</ span > < span class ="o "> +=</ span > < span class ="n "> arr_dtype</ span > < span class ="o "> +</ span > < span class ="n "> sep</ span > < span class ="o "> +</ span > < span class ="n "> arr_shape</ span > < span class ="o "> +</ span > < span class ="n "> sep</ span > < span class ="o "> +</ span > < span class ="n "> arr_bytes</ span >
225
+ < span class ="k "> return</ span > < span class ="n "> to_return</ span > </ div >
226
+
227
+
228
+ < div class ="viewcode-block " id ="bytes_to_arrays "> < a class ="viewcode-back " href ="../../../api/deepsparse.utils.html#deepsparse.utils.data.bytes_to_arrays "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> bytes_to_arrays</ span > < span class ="p "> (</ span > < span class ="n "> serialized_arr</ span > < span class ="p "> :</ span > < span class ="nb "> bytearray</ span > < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="n "> List</ span > < span class ="p "> [</ span > < span class ="n "> numpy</ span > < span class ="o "> .</ span > < span class ="n "> array</ span > < span class ="p "> ]:</ span >
229
+ < span class ="sd "> """</ span >
230
+ < span class ="sd "> :param serialized_arr: bytearray representation of list of numpy arrays</ span >
231
+ < span class ="sd "> :return: List of numpy arrays decoded from input</ span >
232
+ < span class ="sd "> """</ span >
233
+ < span class ="n "> sep</ span > < span class ="o "> =</ span > < span class ="s2 "> "|"</ span > < span class ="o "> .</ span > < span class ="n "> encode</ span > < span class ="p "> (</ span > < span class ="s2 "> "utf-8"</ span > < span class ="p "> )</ span >
234
+ < span class ="n "> arrays</ span > < span class ="o "> =</ span > < span class ="p "> []</ span >
235
+ < span class ="n "> i_start</ span > < span class ="o "> =</ span > < span class ="mi "> 0</ span >
236
+ < span class ="k "> while</ span > < span class ="n "> i_start</ span > < span class ="o "> <</ span > < span class ="nb "> len</ span > < span class ="p "> (</ span > < span class ="n "> serialized_arr</ span > < span class ="p "> )</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> :</ span >
237
+ < span class ="n "> i_0</ span > < span class ="o "> =</ span > < span class ="n "> serialized_arr</ span > < span class ="o "> .</ span > < span class ="n "> find</ span > < span class ="p "> (</ span > < span class ="n "> sep</ span > < span class ="p "> ,</ span > < span class ="n "> i_start</ span > < span class ="p "> )</ span >
238
+ < span class ="n "> i_1</ span > < span class ="o "> =</ span > < span class ="n "> serialized_arr</ span > < span class ="o "> .</ span > < span class ="n "> find</ span > < span class ="p "> (</ span > < span class ="n "> sep</ span > < span class ="p "> ,</ span > < span class ="n "> i_0</ span > < span class ="o "> +</ span > < span class ="mi "> 1</ span > < span class ="p "> )</ span >
239
+ < span class ="n "> arr_dtype</ span > < span class ="o "> =</ span > < span class ="n "> numpy</ span > < span class ="o "> .</ span > < span class ="n "> dtype</ span > < span class ="p "> (</ span > < span class ="n "> serialized_arr</ span > < span class ="p "> [</ span > < span class ="n "> i_start</ span > < span class ="p "> :</ span > < span class ="n "> i_0</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> decode</ span > < span class ="p "> (</ span > < span class ="s2 "> "utf-8"</ span > < span class ="p "> ))</ span >
240
+ < span class ="n "> arr_shape</ span > < span class ="o "> =</ span > < span class ="nb "> tuple</ span > < span class ="p "> (</ span >
241
+ < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> (</ span > < span class ="n "> a</ span > < span class ="p "> )</ span > < span class ="k "> for</ span > < span class ="n "> a</ span > < span class ="ow "> in</ span > < span class ="n "> serialized_arr</ span > < span class ="p "> [</ span > < span class ="n "> i_0</ span > < span class ="o "> +</ span > < span class ="mi "> 1</ span > < span class ="p "> :</ span > < span class ="n "> i_1</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> decode</ span > < span class ="p "> (</ span > < span class ="s2 "> "utf-8"</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> split</ span > < span class ="p "> (</ span > < span class ="s2 "> ","</ span > < span class ="p "> )]</ span >
242
+ < span class ="p "> )</ span >
243
+ < span class ="n "> arr_num_bytes</ span > < span class ="o "> =</ span > < span class ="n "> numpy</ span > < span class ="o "> .</ span > < span class ="n "> prod</ span > < span class ="p "> (</ span > < span class ="n "> arr_shape</ span > < span class ="p "> )</ span > < span class ="o "> *</ span > < span class ="n "> arr_dtype</ span > < span class ="o "> .</ span > < span class ="n "> itemsize</ span >
244
+ < span class ="n "> arr_str</ span > < span class ="o "> =</ span > < span class ="n "> serialized_arr</ span > < span class ="p "> [</ span > < span class ="n "> i_1</ span > < span class ="o "> +</ span > < span class ="mi "> 1</ span > < span class ="p "> :</ span > < span class ="n "> arr_num_bytes</ span > < span class ="o "> +</ span > < span class ="p "> (</ span > < span class ="n "> i_1</ span > < span class ="o "> +</ span > < span class ="mi "> 1</ span > < span class ="p "> )]</ span >
245
+ < span class ="n "> arr</ span > < span class ="o "> =</ span > < span class ="n "> numpy</ span > < span class ="o "> .</ span > < span class ="n "> frombuffer</ span > < span class ="p "> (</ span > < span class ="n "> arr_str</ span > < span class ="p "> ,</ span > < span class ="n "> dtype</ span > < span class ="o "> =</ span > < span class ="n "> arr_dtype</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> reshape</ span > < span class ="p "> (</ span > < span class ="n "> arr_shape</ span > < span class ="p "> )</ span >
246
+ < span class ="n "> arrays</ span > < span class ="o "> .</ span > < span class ="n "> append</ span > < span class ="p "> (</ span > < span class ="n "> arr</ span > < span class ="o "> .</ span > < span class ="n "> copy</ span > < span class ="p "> ())</ span >
247
+
248
+ < span class ="n "> i_start</ span > < span class ="o "> =</ span > < span class ="n "> i_1</ span > < span class ="o "> +</ span > < span class ="n "> arr_num_bytes</ span > < span class ="o "> +</ span > < span class ="mi "> 1</ span >
249
+ < span class ="k "> return</ span > < span class ="n "> arrays</ span > </ div >
250
+
251
+
209
252
< div class ="viewcode-block " id ="verify_outputs "> < a class ="viewcode-back " href ="../../../api/deepsparse.utils.html#deepsparse.utils.data.verify_outputs "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> verify_outputs</ span > < span class ="p "> (</ span >
210
253
< span class ="n "> outputs</ span > < span class ="p "> :</ span > < span class ="n "> List</ span > < span class ="p "> [</ span > < span class ="n "> numpy</ span > < span class ="o "> .</ span > < span class ="n "> array</ span > < span class ="p "> ],</ span >
211
254
< span class ="n "> gt_outputs</ span > < span class ="p "> :</ span > < span class ="n "> List</ span > < span class ="p "> [</ span > < span class ="n "> numpy</ span > < span class ="o "> .</ span > < span class ="n "> array</ span > < span class ="p "> ],</ span >
0 commit comments