├── .idea
├── AnomalyDetection.iml
├── misc.xml
├── modules.xml
├── vcs.xml
└── workspace.xml
├── LSTM_model.py
├── README.md
├── Untitled Diagram.drawio
├── _1in_out_merge.py
├── _2npy_filter.py
├── _3draw_the_first_month.py
├── _3generate_data_csv.py
├── _4train_model.py
├── _5draw_train_loss.py
├── _5predict_by_model.py
├── _6predict_the_5th_week.py
├── __pycache__
├── LSTM_model.cpython-36.pyc
├── _5predict_by_model.cpython-36.pyc
└── config.cpython-36.pyc
├── config.py
├── imgs
├── Fig1.png
├── Fig2.png
├── Fig3.jpg
├── Fig4.jpg
├── Fig5.png
└── Fig6.jpg
├── model
├── checkpoint
├── final_state.npy
├── model.ckpt.data-00000-of-00001
├── model.ckpt.index
└── model.ckpt.meta
└── temp_data
├── cost.npy
├── cost.png
├── data.csv
└── npy.txt
/.idea/AnomalyDetection.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/workspace.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
114 |
115 |
116 |
117 | train_op
118 | cost
119 | cell_init_state
120 | cell_final_state
121 | print
122 | cell_fin
123 | init
124 | zero
125 | pred
126 | LSTMRNN
127 | 150
128 |
129 |
130 | 300
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 | true
167 | DEFINITION_ORDER
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 |
327 |
328 |
329 |
330 |
331 |
332 |
333 |
334 |
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 |
344 |
345 |
346 |
347 |
348 |
349 |
350 |
351 |
352 |
353 |
354 |
355 |
356 |
357 |
358 | 1542329622679
359 |
360 |
361 | 1542329622679
362 |
363 |
364 |
365 |
366 |
367 |
368 |
369 |
370 |
371 |
372 |
373 |
374 |
375 |
376 |
377 |
378 |
379 |
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
389 |
390 |
391 |
392 |
393 |
394 |
395 |
396 |
397 |
398 |
399 |
400 |
401 |
402 |
403 |
404 |
405 |
406 |
407 |
408 |
409 |
410 |
411 |
412 |
413 |
414 |
415 |
416 |
417 |
418 |
419 |
420 |
421 |
422 |
423 |
424 |
425 |
426 |
427 |
428 |
429 |
430 |
431 |
432 |
433 |
434 |
435 |
436 |
437 |
438 |
439 |
440 |
441 |
442 |
443 |
444 |
445 |
446 |
447 |
448 |
449 |
450 |
451 |
452 |
453 |
454 |
455 |
456 |
457 |
458 |
459 |
460 |
461 |
462 |
463 |
464 |
465 |
466 |
467 |
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 |
481 |
482 |
483 |
484 |
485 |
486 |
487 |
488 |
489 |
490 |
491 |
492 |
493 |
494 |
495 |
496 |
497 |
498 |
499 |
500 |
501 |
502 |
503 |
504 |
505 |
506 |
507 |
508 |
509 |
510 |
511 |
512 |
513 |
514 |
515 |
516 |
517 |
518 |
519 |
520 |
521 |
522 |
523 |
524 |
525 |
526 |
527 |
528 |
529 |
530 |
531 |
532 |
533 |
534 |
535 |
536 |
537 |
538 |
539 |
540 |
541 |
542 |
543 |
544 |
545 |
546 |
547 |
548 |
549 |
--------------------------------------------------------------------------------
/LSTM_model.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | Created on 2018/11/16 9:58
4 | @author: Eric
5 | @email: qian.dong.2018@gmail.com
6 | """
7 | import tensorflow as tf
8 | from config import *
9 | class LSTMRNN(object):
10 | def __init__(self, n_steps, input_size, output_size, cell_size, batch_size):
11 | self.n_steps = n_steps
12 | self.input_size = input_size
13 | self.output_size = output_size
14 | self.cell_size = cell_size
15 | self.batch_size = batch_size
16 | with tf.name_scope('inputs'):
17 | self.xs = tf.placeholder(tf.float32, [None, n_steps, input_size], name='xs')
18 | self.ys = tf.placeholder(tf.float32, [None, output_size], name='ys')
19 | print("xs, ys:", self.xs,self.ys)
20 | with tf.variable_scope('in_hidden'):
21 | self.add_input_layer()
22 | with tf.variable_scope('LSTM_cell'):
23 | self.add_cell()
24 | with tf.variable_scope('out_hidden'):
25 | self.add_output_layer()
26 | with tf.name_scope('cost'):
27 | self.compute_cost()
28 | with tf.name_scope('train'):
29 | self.train_op = tf.train.AdamOptimizer(LR).minimize(self.cost)
30 | print("train_op:", self.train_op)
31 |
32 | def add_input_layer(self, ):
33 | l_in_x = tf.reshape(self.xs, [-1, self.input_size], name='2_2D') # (batch*n_step, in_size)
34 | # Ws (in_size, cell_size)
35 | Ws_in = self._weight_variable([self.input_size, self.cell_size])
36 | # bs (cell_size, )
37 | bs_in = self._bias_variable([self.cell_size, ])
38 | # l_in_y = (batch * n_steps, cell_size)
39 | with tf.name_scope('Wx_plus_b'):
40 | l_in_y = tf.matmul(l_in_x, Ws_in) + bs_in
41 | # reshape l_in_y ==> (batch, n_steps, cell_size)
42 | self.l_in_y = tf.reshape(l_in_y, [-1, self.n_steps, self.cell_size], name='2_3D')
43 |
44 | def add_cell(self):
45 | lstm_cell = tf.contrib.rnn.BasicLSTMCell(self.cell_size, forget_bias=0.3, state_is_tuple=False)
46 | with tf.name_scope('initial_state'):
47 | self.cell_init_state = lstm_cell.zero_state(self.batch_size, dtype=tf.float32)
48 | print("cell_init_state:", self.cell_init_state)
49 | self.cell_outputs, self.cell_final_state = tf.nn.dynamic_rnn(
50 | lstm_cell, self.l_in_y, initial_state=self.cell_init_state, time_major=False)
51 | print("cell_final_state:",self.cell_final_state)
52 |
53 | def add_output_layer(self):
54 | # shape = (batch * steps, cell_size)
55 | print("cell_outputs:", self.cell_outputs) # 50 20 10
56 | l_out_x = tf.reshape(self.cell_outputs, [self.batch_size, -1], name='2_2D')
57 | Ws_out = self._weight_variable([self.n_steps*self.cell_size, self.output_size])
58 | bs_out = self._bias_variable([self.output_size, ])
59 | # shape = (batch * steps, output_size)
60 | with tf.name_scope('Wx_plus_b'):
61 | self.pred = tf.matmul(l_out_x, Ws_out) + bs_out
62 | self.predict = tf.maximum(tf.rint(tf.matmul(l_out_x, Ws_out) + bs_out), tf.zeros([self.batch_size,1], tf.float32))
63 | print("predict:",self.predict)
64 |
65 | def compute_cost(self):
66 | print("pred:", self.pred)
67 | losses = self.ms_error(self.pred, self.ys)
68 | with tf.name_scope('average_cost'):
69 | self.cost = tf.div(
70 | tf.reduce_sum(losses, name='losses_sum'),
71 | self.batch_size,
72 | name='average_cost')
73 | print("cost:", self.cost)
74 | # tf.summary.scalar('cost', self.cost)
75 |
76 | def ms_error(self, labels, logits):
77 | return tf.square(tf.subtract(labels, logits))
78 |
79 | def _weight_variable(self, shape, name='weights'):
80 | initializer = tf.random_normal_initializer(mean=0., stddev=1., )
81 | return tf.get_variable(shape=shape, initializer=initializer, name=name)
82 |
83 | def _bias_variable(self, shape, name='biases'):
84 | initializer = tf.constant_initializer(0.1)
85 | return tf.get_variable(name=name, shape=shape, initializer=initializer)
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # AnomalyDetection
2 | ## LSTM对时间序列的数据做预测,通过偏离值的大小达到异常检测的目的
3 | ### 1.思路
4 | 用一个网格7x24个小时的数据预测该网格第7x24+1个小时的in out,如果这个预测in out与真实值的差距大于一个阈值(该阈值最终取3,见Fig3),就把这小时对应的网格当做一个异常的网格,可以达到实时检测的效果
5 |

6 |
7 | #### Fig1.某网格7*24小时(一周)的时序图
8 |
9 |
10 |
11 | #### Fig2.某网格相邻四周的时序图
12 |
13 |
14 |
15 | #### Fig3_1.训练loss与epoch的箱型图
16 |
17 |
18 |
19 | #### Fig3_2.最后一个epoch的loss箱型图
20 |
21 | #### (异常的阈值取3因为最后一个epoch的均方差loss基本小于9)
22 |
23 |
24 |
25 | #### Fig4.训练loss与每个step的曲线图
26 |
27 |
28 |
29 | #### Fig5.某网格第五周的预测图
30 |
31 | #### Fig5中红线是真实值±3,代表异常的阈值曲线,绿线是预测值曲线,蓝线是真实值的曲线,绿线超出红线即视为异常
32 |
33 | ### 2.流程
34 |
35 | >1)过滤掉稀疏的网格,一个网格用一个向量存储2088个小时的in/out,如果2088个值里边有超过三分之一的值为0,则过滤掉,不用该网格的数据进行模型训练。原因:一天24小时,可以有三分之一的时间比如0a.m.-8a.m. 没有in/out,其他时间段有in/out,比较符合该数据合理的直觉,共1317个符合条件的向量,原始数据有104000*2个向量
36 |
37 | >2)最终训练数据生成:将符合条件的向量用一个24*7的窗口划分
38 |
39 | >>A.为了减少模型过拟合,窗口之间不重合
40 |
41 | >>B.为了增加模型的适用性,划分窗口时加一个offset,使得模型从一周的随便一个小时起开始预测都可以,
42 | 最终有大约1317*(2088/(24*7))=16368个训练样本
43 |
44 |
45 | [in out and some temp images zip file](https://pan.baidu.com/s/1xtjGd2vXjHrTTpBo_UntvQ)
46 |
--------------------------------------------------------------------------------
/Untitled Diagram.drawio:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/_1in_out_merge.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | Created on 2018/11/15 20:04
4 | @author: Eric
5 | @email: qian.dong.2018@gmail.com
6 | """
7 | import os
8 | import numpy as np
9 |
10 |
11 | def main():
12 | if not os.path.exists("./in"):
13 | os.makedirs("./in")
14 | if not os.path.exists("./out"):
15 | os.makedirs("./out")
16 | gridID_in_hourly = {}
17 | gridID_out_hourly = {}
18 | for i in range(104000):
19 | gridID_in_hourly[i] = [0] * 2088
20 | gridID_out_hourly[i] = [0] * 2088
21 | root_path = "/datahouse/tripflow/ano_detect/200/bj-byhour-io/"
22 | for io_file in os.listdir(root_path):
23 | hour = int(io_file.split('-')[-1])
24 | io_file = os.path.join(root_path, io_file)
25 | print(io_file)
26 | with open(io_file) as f:
27 | lines = f.readlines()
28 | lines = [line.strip().split(',') for line in lines]
29 | lines = np.array(lines)
30 | lines = lines.astype(int)
31 | for line in lines:
32 | gridID_out_hourly[line[0]][hour] = line[1]
33 | gridID_in_hourly[line[0]][hour] = line[2]
34 | for ID in gridID_in_hourly:
35 | np.save("./in/%d.npy" % ID, gridID_in_hourly[ID])
36 | np.save("./out/%d.npy" % ID, gridID_out_hourly[ID])
37 |
38 |
39 | if __name__ == "__main__":
40 | main()
41 |
--------------------------------------------------------------------------------
/_2npy_filter.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | Created on 2018/11/15 20:04
4 | @author: Eric
5 | @email: qian.dong.2018@gmail.com
6 | """
7 | import os
8 | import numpy as np
9 |
10 |
11 | def main():
12 | root_path = '../data/in_out/'
13 | save_list = []
14 | for root, dirs, files in os.walk(root_path):
15 | for npy in files:
16 | npy_ = os.path.join(root, npy)
17 | npy_ = np.load(npy_)
18 | pos_rate = 1 - sum(npy_ == 0) / len(npy_) # 非0值的比例
19 | if pos_rate > 0.667:
20 | print(os.path.join(root, npy))
21 | save_list.append(os.path.join(root, npy))
22 | with open('npy.txt', 'w')as f:
23 | for name in save_list:
24 | f.write(name + "\n")
25 |
26 |
27 | if __name__ == "__main__":
28 | main()
29 |
--------------------------------------------------------------------------------
/_3draw_the_first_month.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | Created on 2018/11/16 12:02
4 | @author: Eric
5 | @email: qian.dong.2018@gmail.com
6 | """
7 | import matplotlib
8 | matplotlib.use("Agg")
9 |
10 | import matplotlib.pyplot as plt
11 | import numpy as np
12 | import os
13 |
14 |
15 | def main():
16 | f = open("./temp_data/npy.txt")
17 | lines = f.readlines()
18 | lines = [line.strip() for line in lines]
19 | for line in lines:
20 | print(line)
21 | f, axs = plt.subplots(2, 1, figsize=(15, 5))
22 | axs[0].plot(np.load(line)[0:24 * 7])
23 | axs[1].plot(np.load(line)[0:24 * 7])
24 | axs[1].plot(np.load(line)[24 * 7 * 1:24 * 7 * 2])
25 | axs[1].plot(np.load(line)[24 * 7 * 2:24 * 7 * 3])
26 | axs[1].plot(np.load(line)[24 * 7 * 3:24 * 7 * 4])
27 | plt.xlabel("hour")
28 | plt.ylabel("number of in/out")
29 | if not os.path.exists("../data/first_month_figures"):
30 | os.makedirs("../data/first_month_figures")
31 | plt.savefig("../data/first_month_figures/%d.png" % (int(os.path.basename(line).split('.')[0])))
32 | plt.show()
33 |
34 |
35 | if __name__ == "__main__":
36 | main()
37 |
--------------------------------------------------------------------------------
/_3generate_data_csv.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | Created on 2018/11/16 11:35
4 | @author: Eric
5 | @email: qian.dong.2018@gmail.com
6 | """
7 | import numpy as np
8 | import pandas as pd
9 |
10 |
11 | def main():
12 | f = open('./temp_data/npy.txt')
13 | lines = f.readlines()
14 | lines = [line.strip() for line in lines]
15 | f.close()
16 | data = np.array([[0] * 169] * 15063)
17 | cnt = 0
18 | for idx, line in enumerate(lines):
19 | npy = np.load(line)
20 | offset = idx % (24 * 7)
21 | for i in range((2088 - offset - 1) // (24 * 7)):
22 | data[cnt] = (npy[i * 24 * 7 + offset:(i + 1) * 24 * 7 + offset + 1])
23 | cnt += 1
24 | data = pd.DataFrame(data)
25 | data.to_csv('./temp_data/data.csv', index=False)
26 |
27 |
28 | if __name__ == "__main__":
29 | main()
30 |
--------------------------------------------------------------------------------
/_4train_model.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | Created on 2018/11/15 17:33
4 | @author: Eric
5 | @email: qian.dong.2018@gmail.com
6 | """
7 | import os
8 | import numpy as np
9 | import pandas as pd
10 | import tensorflow as tf
11 | from LSTM_model import LSTMRNN
12 | import matplotlib.pyplot as plt
13 | from config import *
14 |
15 | Data = pd.read_csv('./temp_data/data.csv')
16 | Indices = np.arange(Data.shape[0])
17 | np.random.shuffle(Indices)
18 | Data = np.array(Data)
19 |
20 |
21 | def get_batch():
22 | global BATCH_START, BATCH_SIZE
23 | data = Data[Indices[BATCH_START:BATCH_START + BATCH_SIZE]]
24 | seq = np.array([d[0:TIME_STEPS].tolist() for d in data])
25 | res = np.array([d[-1] for d in data]).reshape(-1, 1)
26 | BATCH_START += BATCH_SIZE
27 | return [seq[:, :, np.newaxis], res]
28 |
29 |
30 | if __name__ == '__main__':
31 | with tf.Session() as sess:
32 | model = LSTMRNN(TIME_STEPS, INPUT_SIZE, OUTPUT_SIZE, CELL_SIZE, BATCH_SIZE)
33 | sess.run(tf.global_variables_initializer())
34 | saver = tf.train.Saver()
35 | costs = []
36 | begin = True
37 | # 训练 10 次
38 | for epoch in range(100):
39 | BATCH_START = 0
40 | np.random.shuffle(Indices)
41 | for i in range(len(Indices) // BATCH_SIZE):
42 | seq, res = get_batch() # 提取 batch data
43 | if begin:
44 | begin = False
45 | # 初始化 data
46 | feed_dict = {
47 | model.xs: seq,
48 | model.ys: res,
49 | }
50 | else:
51 | feed_dict = {
52 | model.xs: seq,
53 | model.ys: res,
54 | model.cell_init_state: state # 保持 state 的连续性
55 | }
56 | # 训练
57 | _, cost, state, pred = sess.run(
58 | [model.train_op, model.cost, model.cell_final_state, model.pred],
59 | feed_dict=feed_dict)
60 | print('epoch:%d step:%d cost: ' % (epoch, i), round(cost, 4))
61 | costs.append(cost)
62 | # print(pred)
63 | np.save("./model/final_state.npy", state)
64 | np.save("./temp_data/cost.npy", costs)
65 | plt.plot(costs)
66 | plt.show()
67 | plt.savefig("./temp_data/cost.png")
68 | if not os.path.exists("model"):
69 | os.makedirs("model")
70 | saver.save(sess=sess, save_path=os.path.join(os.getcwd(), 'model', 'model.ckpt'))
71 |
--------------------------------------------------------------------------------
/_5draw_train_loss.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | Created on 2018/11/16 11:15
4 | @author: Eric
5 | @email: qian.dong.2018@gmail.com
6 | """
7 | import numpy as np
8 | import matplotlib.pyplot as plt
9 |
10 |
11 | def main():
12 | costs = np.load('cost.npy')
13 | plt.plot(costs)
14 | plt.xlabel("step")
15 | plt.ylabel("mean squre error")
16 | plt.title("loss-step graph")
17 | plt.show()
18 | costs = costs.reshape(10, -1)
19 | f, axs = plt.subplots(1, 1, figsize=(15, 5))
20 | axs.boxplot([cost for cost in costs])
21 | plt.ylabel("mean square error")
22 | plt.xlabel("epoch")
23 | plt.title("loss-epoch box graph")
24 | plt.show()
25 |
26 |
27 | if __name__ == "__main__":
28 | main()
29 |
--------------------------------------------------------------------------------
/_5predict_by_model.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | Created on 2018/11/16 9:14
4 | @author: Eric
5 | @email: qian.dong.2018@gmail.com
6 | """
7 | import numpy as np
8 | import pandas as pd
9 | import tensorflow as tf
10 | from config import *
11 |
12 | Data = pd.read_csv('./temp_data/data.csv')
13 | Indices = np.arange(Data.shape[0]) # 随机打乱索引并切分训练集与测试集
14 | np.random.shuffle(Indices)
15 | Data = np.array(Data)
16 |
17 |
18 | def get_batch():
19 | global BATCH_START, BATCH_SIZE
20 | # xs shape (50batch, 20steps)
21 | data = Data[Indices[BATCH_START:BATCH_START + BATCH_SIZE]]
22 | seq = np.array([d[0:TIME_STEPS].tolist() for d in data])
23 | res = np.array([d[-1] for d in data]).reshape(-1, 1)
24 | BATCH_START += BATCH_SIZE
25 | return [seq[:, :, np.newaxis], res]
26 |
27 |
28 | def get_data(num):
29 | data = Data[num]
30 | seq = np.array(data[0:TIME_STEPS])
31 | res = data[-1]
32 | return [seq.reshape(-1, 1), res]
33 |
34 |
35 | def predict_by_model(seq): # seq shape为 [TIME_STEPS, 1] [24*7, 1]
36 | seq = np.array(seq)
37 | # reshape为[BATCH_SIZE, 24*7, 1]
38 | seq = np.array([seq.tolist() for _ in range(BATCH_SIZE)]).reshape(BATCH_SIZE, 24*7, 1)
39 | with tf.Session() as sess:
40 | new_saver = tf.train.import_meta_graph('./model/model.ckpt.meta')
41 | new_saver.restore(sess, tf.train.latest_checkpoint('./model'))
42 | graph = tf.get_default_graph()
43 | predict = graph.get_tensor_by_name("out_hidden/Wx_plus_b/Maximum:0")
44 | xs = graph.get_tensor_by_name("inputs/xs:0")
45 | cell_init_state = graph.get_tensor_by_name("LSTM_cell/initial_state/BasicLSTMCellZeroState/zeros:0")
46 | state = np.load("./model/final_state.npy")
47 | pred = sess.run(predict, feed_dict={xs: seq, cell_init_state: state})
48 | return pred[0][0]
49 |
50 |
51 |
--------------------------------------------------------------------------------
/_6predict_the_5th_week.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | Created on 2018/11/16 12:21
4 | @author: Eric
5 | @email: qian.dong.2018@gmail.com
6 | """
7 | from _5predict_by_model import predict_by_model
8 | import matplotlib
9 | matplotlib.use("Agg")
10 | import matplotlib.pyplot as plt
11 | import numpy as np
12 | import os
13 |
14 |
15 | def predict_5th_week(npy):
16 | test = np.load(npy)
17 | predicts = []
18 | for i in range(24 * 7):
19 | print(i, npy)
20 | seq = test[24 * 7 * 3 + i:24 * 7 * 4 + i]
21 | predicts.append(predict_by_model(seq))
22 | return predicts
23 |
24 |
25 | def draw_predict(predicts, npy):
26 | test = np.load(npy)
27 | f, axs = plt.subplots(2, 1, figsize=(15, 5))
28 | axs[0].plot(test[24 * 7 * 4:24 * 7 * 5] - 3, 'r')
29 | axs[0].plot(test[24 * 7 * 4:24 * 7 * 5], 'b')
30 | axs[0].plot(test[24 * 7 * 4:24 * 7 * 5] + 3, 'r')
31 | axs[0].plot(predicts, 'g')
32 | axs[1].plot(test[24 * 7 * 4:24 * 7 * 5], 'b')
33 | axs[1].plot(predicts, 'g')
34 | plt.xlabel("hour")
35 | plt.ylabel("number of in/out")
36 | plt.savefig("../data/predict_result/%d.png"%(int(os.path.basename(npy).split('.')[0])))
37 | plt.show()
38 |
39 |
40 | def main():
41 | f = open("./temp_data/npy.txt")
42 | lines = f.readlines()
43 | npys = [line.strip() for line in lines]
44 | for npy in npys[0:10]:
45 | predict = predict_5th_week(npy)
46 | draw_predict(predict, npy)
47 |
48 |
49 | if __name__ == '__main__':
50 | main()
51 |
--------------------------------------------------------------------------------
/__pycache__/LSTM_model.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CSQianDong/AnomalyDetection/e624df03c3b8d63b5e529879a19bc02cf20a28d4/__pycache__/LSTM_model.cpython-36.pyc
--------------------------------------------------------------------------------
/__pycache__/_5predict_by_model.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CSQianDong/AnomalyDetection/e624df03c3b8d63b5e529879a19bc02cf20a28d4/__pycache__/_5predict_by_model.cpython-36.pyc
--------------------------------------------------------------------------------
/__pycache__/config.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CSQianDong/AnomalyDetection/e624df03c3b8d63b5e529879a19bc02cf20a28d4/__pycache__/config.cpython-36.pyc
--------------------------------------------------------------------------------
/config.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | Created on 2018/11/16 9:18
4 | @author: Eric
5 | @email: qian.dong.2018@gmail.com
6 | """
7 | BATCH_START = 0 # 建立 batch data 时候的 index
8 | TIME_STEPS = 168 # 时序数据的size
9 | BATCH_SIZE = 256
10 | INPUT_SIZE = 1
11 | OUTPUT_SIZE = 1
12 | CELL_SIZE = 64 # RNN 的 hidden unit size
13 | LR = 1e-5 # learning rate
--------------------------------------------------------------------------------
/imgs/Fig1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CSQianDong/AnomalyDetection/e624df03c3b8d63b5e529879a19bc02cf20a28d4/imgs/Fig1.png
--------------------------------------------------------------------------------
/imgs/Fig2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CSQianDong/AnomalyDetection/e624df03c3b8d63b5e529879a19bc02cf20a28d4/imgs/Fig2.png
--------------------------------------------------------------------------------
/imgs/Fig3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CSQianDong/AnomalyDetection/e624df03c3b8d63b5e529879a19bc02cf20a28d4/imgs/Fig3.jpg
--------------------------------------------------------------------------------
/imgs/Fig4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CSQianDong/AnomalyDetection/e624df03c3b8d63b5e529879a19bc02cf20a28d4/imgs/Fig4.jpg
--------------------------------------------------------------------------------
/imgs/Fig5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CSQianDong/AnomalyDetection/e624df03c3b8d63b5e529879a19bc02cf20a28d4/imgs/Fig5.png
--------------------------------------------------------------------------------
/imgs/Fig6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CSQianDong/AnomalyDetection/e624df03c3b8d63b5e529879a19bc02cf20a28d4/imgs/Fig6.jpg
--------------------------------------------------------------------------------
/model/checkpoint:
--------------------------------------------------------------------------------
1 | model_checkpoint_path: "D:\\work\\python_project\\AnomalyDetection\\model\\model.ckpt"
2 | all_model_checkpoint_paths: "D:\\work\\python_project\\AnomalyDetection\\model\\model.ckpt"
3 |
--------------------------------------------------------------------------------
/model/final_state.npy:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CSQianDong/AnomalyDetection/e624df03c3b8d63b5e529879a19bc02cf20a28d4/model/final_state.npy
--------------------------------------------------------------------------------
/model/model.ckpt.data-00000-of-00001:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CSQianDong/AnomalyDetection/e624df03c3b8d63b5e529879a19bc02cf20a28d4/model/model.ckpt.data-00000-of-00001
--------------------------------------------------------------------------------
/model/model.ckpt.index:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CSQianDong/AnomalyDetection/e624df03c3b8d63b5e529879a19bc02cf20a28d4/model/model.ckpt.index
--------------------------------------------------------------------------------
/model/model.ckpt.meta:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CSQianDong/AnomalyDetection/e624df03c3b8d63b5e529879a19bc02cf20a28d4/model/model.ckpt.meta
--------------------------------------------------------------------------------
/temp_data/cost.npy:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CSQianDong/AnomalyDetection/e624df03c3b8d63b5e529879a19bc02cf20a28d4/temp_data/cost.npy
--------------------------------------------------------------------------------
/temp_data/cost.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CSQianDong/AnomalyDetection/e624df03c3b8d63b5e529879a19bc02cf20a28d4/temp_data/cost.png
--------------------------------------------------------------------------------
/temp_data/npy.txt:
--------------------------------------------------------------------------------
1 | ../data/in_out/in\21590.npy
2 | ../data/in_out/in\22592.npy
3 | ../data/in_out/in\24522.npy
4 | ../data/in_out/in\24523.npy
5 | ../data/in_out/in\24834.npy
6 | ../data/in_out/in\24849.npy
7 | ../data/in_out/in\25164.npy
8 | ../data/in_out/in\25171.npy
9 | ../data/in_out/in\25172.npy
10 | ../data/in_out/in\25173.npy
11 | ../data/in_out/in\25174.npy
12 | ../data/in_out/in\25176.npy
13 | ../data/in_out/in\25179.npy
14 | ../data/in_out/in\25180.npy
15 | ../data/in_out/in\25181.npy
16 | ../data/in_out/in\25182.npy
17 | ../data/in_out/in\25184.npy
18 | ../data/in_out/in\25497.npy
19 | ../data/in_out/in\25499.npy
20 | ../data/in_out/in\25507.npy
21 | ../data/in_out/in\25821.npy
22 | ../data/in_out/in\25822.npy
23 | ../data/in_out/in\25824.npy
24 | ../data/in_out/in\25825.npy
25 | ../data/in_out/in\25826.npy
26 | ../data/in_out/in\25827.npy
27 | ../data/in_out/in\25828.npy
28 | ../data/in_out/in\25829.npy
29 | ../data/in_out/in\25830.npy
30 | ../data/in_out/in\25831.npy
31 | ../data/in_out/in\25832.npy
32 | ../data/in_out/in\25833.npy
33 | ../data/in_out/in\26154.npy
34 | ../data/in_out/in\26155.npy
35 | ../data/in_out/in\26156.npy
36 | ../data/in_out/in\26157.npy
37 | ../data/in_out/in\26158.npy
38 | ../data/in_out/in\26460.npy
39 | ../data/in_out/in\26461.npy
40 | ../data/in_out/in\26471.npy
41 | ../data/in_out/in\26472.npy
42 | ../data/in_out/in\26473.npy
43 | ../data/in_out/in\26474.npy
44 | ../data/in_out/in\26480.npy
45 | ../data/in_out/in\26481.npy
46 | ../data/in_out/in\26482.npy
47 | ../data/in_out/in\26483.npy
48 | ../data/in_out/in\26485.npy
49 | ../data/in_out/in\26486.npy
50 | ../data/in_out/in\26783.npy
51 | ../data/in_out/in\26785.npy
52 | ../data/in_out/in\26796.npy
53 | ../data/in_out/in\26797.npy
54 | ../data/in_out/in\26800.npy
55 | ../data/in_out/in\26807.npy
56 | ../data/in_out/in\26809.npy
57 | ../data/in_out/in\26810.npy
58 | ../data/in_out/in\26811.npy
59 | ../data/in_out/in\26812.npy
60 | ../data/in_out/in\26813.npy
61 | ../data/in_out/in\27118.npy
62 | ../data/in_out/in\27119.npy
63 | ../data/in_out/in\27122.npy
64 | ../data/in_out/in\27134.npy
65 | ../data/in_out/in\27135.npy
66 | ../data/in_out/in\27136.npy
67 | ../data/in_out/in\27137.npy
68 | ../data/in_out/in\27138.npy
69 | ../data/in_out/in\27432.npy
70 | ../data/in_out/in\27437.npy
71 | ../data/in_out/in\27438.npy
72 | ../data/in_out/in\27440.npy
73 | ../data/in_out/in\27443.npy
74 | ../data/in_out/in\27447.npy
75 | ../data/in_out/in\27448.npy
76 | ../data/in_out/in\27449.npy
77 | ../data/in_out/in\27460.npy
78 | ../data/in_out/in\27461.npy
79 | ../data/in_out/in\27462.npy
80 | ../data/in_out/in\27463.npy
81 | ../data/in_out/in\27494.npy
82 | ../data/in_out/in\27762.npy
83 | ../data/in_out/in\27763.npy
84 | ../data/in_out/in\27765.npy
85 | ../data/in_out/in\27766.npy
86 | ../data/in_out/in\27767.npy
87 | ../data/in_out/in\27768.npy
88 | ../data/in_out/in\27770.npy
89 | ../data/in_out/in\27771.npy
90 | ../data/in_out/in\27772.npy
91 | ../data/in_out/in\27775.npy
92 | ../data/in_out/in\27780.npy
93 | ../data/in_out/in\27783.npy
94 | ../data/in_out/in\27785.npy
95 | ../data/in_out/in\27786.npy
96 | ../data/in_out/in\27787.npy
97 | ../data/in_out/in\27788.npy
98 | ../data/in_out/in\27818.npy
99 | ../data/in_out/in\28087.npy
100 | ../data/in_out/in\28089.npy
101 | ../data/in_out/in\28090.npy
102 | ../data/in_out/in\28091.npy
103 | ../data/in_out/in\28092.npy
104 | ../data/in_out/in\28093.npy
105 | ../data/in_out/in\28094.npy
106 | ../data/in_out/in\28095.npy
107 | ../data/in_out/in\28096.npy
108 | ../data/in_out/in\28097.npy
109 | ../data/in_out/in\28099.npy
110 | ../data/in_out/in\28100.npy
111 | ../data/in_out/in\28101.npy
112 | ../data/in_out/in\28103.npy
113 | ../data/in_out/in\28104.npy
114 | ../data/in_out/in\28107.npy
115 | ../data/in_out/in\28108.npy
116 | ../data/in_out/in\28109.npy
117 | ../data/in_out/in\28111.npy
118 | ../data/in_out/in\28112.npy
119 | ../data/in_out/in\28113.npy
120 | ../data/in_out/in\28114.npy
121 | ../data/in_out/in\28115.npy
122 | ../data/in_out/in\28139.npy
123 | ../data/in_out/in\28140.npy
124 | ../data/in_out/in\28141.npy
125 | ../data/in_out/in\28142.npy
126 | ../data/in_out/in\28412.npy
127 | ../data/in_out/in\28414.npy
128 | ../data/in_out/in\28415.npy
129 | ../data/in_out/in\28416.npy
130 | ../data/in_out/in\28417.npy
131 | ../data/in_out/in\28418.npy
132 | ../data/in_out/in\28419.npy
133 | ../data/in_out/in\28422.npy
134 | ../data/in_out/in\28429.npy
135 | ../data/in_out/in\28430.npy
136 | ../data/in_out/in\28431.npy
137 | ../data/in_out/in\28432.npy
138 | ../data/in_out/in\28433.npy
139 | ../data/in_out/in\28434.npy
140 | ../data/in_out/in\28435.npy
141 | ../data/in_out/in\28436.npy
142 | ../data/in_out/in\28437.npy
143 | ../data/in_out/in\28438.npy
144 | ../data/in_out/in\28440.npy
145 | ../data/in_out/in\28441.npy
146 | ../data/in_out/in\28442.npy
147 | ../data/in_out/in\28443.npy
148 | ../data/in_out/in\28727.npy
149 | ../data/in_out/in\28740.npy
150 | ../data/in_out/in\28744.npy
151 | ../data/in_out/in\28745.npy
152 | ../data/in_out/in\28746.npy
153 | ../data/in_out/in\28747.npy
154 | ../data/in_out/in\28748.npy
155 | ../data/in_out/in\28749.npy
156 | ../data/in_out/in\28751.npy
157 | ../data/in_out/in\28753.npy
158 | ../data/in_out/in\28754.npy
159 | ../data/in_out/in\28755.npy
160 | ../data/in_out/in\28756.npy
161 | ../data/in_out/in\28757.npy
162 | ../data/in_out/in\28761.npy
163 | ../data/in_out/in\28762.npy
164 | ../data/in_out/in\28763.npy
165 | ../data/in_out/in\28764.npy
166 | ../data/in_out/in\28765.npy
167 | ../data/in_out/in\28766.npy
168 | ../data/in_out/in\28767.npy
169 | ../data/in_out/in\28768.npy
170 | ../data/in_out/in\28789.npy
171 | ../data/in_out/in\28792.npy
172 | ../data/in_out/in\29047.npy
173 | ../data/in_out/in\29049.npy
174 | ../data/in_out/in\29051.npy
175 | ../data/in_out/in\29053.npy
176 | ../data/in_out/in\29055.npy
177 | ../data/in_out/in\29057.npy
178 | ../data/in_out/in\29060.npy
179 | ../data/in_out/in\29062.npy
180 | ../data/in_out/in\29064.npy
181 | ../data/in_out/in\29067.npy
182 | ../data/in_out/in\29068.npy
183 | ../data/in_out/in\29069.npy
184 | ../data/in_out/in\29070.npy
185 | ../data/in_out/in\29071.npy
186 | ../data/in_out/in\29072.npy
187 | ../data/in_out/in\29073.npy
188 | ../data/in_out/in\29076.npy
189 | ../data/in_out/in\29077.npy
190 | ../data/in_out/in\29079.npy
191 | ../data/in_out/in\29080.npy
192 | ../data/in_out/in\29081.npy
193 | ../data/in_out/in\29082.npy
194 | ../data/in_out/in\29083.npy
195 | ../data/in_out/in\29084.npy
196 | ../data/in_out/in\29085.npy
197 | ../data/in_out/in\29086.npy
198 | ../data/in_out/in\29087.npy
199 | ../data/in_out/in\29088.npy
200 | ../data/in_out/in\29089.npy
201 | ../data/in_out/in\29093.npy
202 | ../data/in_out/in\29094.npy
203 | ../data/in_out/in\29113.npy
204 | ../data/in_out/in\29114.npy
205 | ../data/in_out/in\29115.npy
206 | ../data/in_out/in\29382.npy
207 | ../data/in_out/in\29385.npy
208 | ../data/in_out/in\29386.npy
209 | ../data/in_out/in\29387.npy
210 | ../data/in_out/in\29393.npy
211 | ../data/in_out/in\29394.npy
212 | ../data/in_out/in\29395.npy
213 | ../data/in_out/in\29396.npy
214 | ../data/in_out/in\29397.npy
215 | ../data/in_out/in\29398.npy
216 | ../data/in_out/in\29403.npy
217 | ../data/in_out/in\29404.npy
218 | ../data/in_out/in\29405.npy
219 | ../data/in_out/in\29406.npy
220 | ../data/in_out/in\29407.npy
221 | ../data/in_out/in\29408.npy
222 | ../data/in_out/in\29409.npy
223 | ../data/in_out/in\29410.npy
224 | ../data/in_out/in\29411.npy
225 | ../data/in_out/in\29412.npy
226 | ../data/in_out/in\29413.npy
227 | ../data/in_out/in\29414.npy
228 | ../data/in_out/in\29415.npy
229 | ../data/in_out/in\29416.npy
230 | ../data/in_out/in\29417.npy
231 | ../data/in_out/in\29418.npy
232 | ../data/in_out/in\29419.npy
233 | ../data/in_out/in\29420.npy
234 | ../data/in_out/in\29421.npy
235 | ../data/in_out/in\29425.npy
236 | ../data/in_out/in\29429.npy
237 | ../data/in_out/in\29430.npy
238 | ../data/in_out/in\29433.npy
239 | ../data/in_out/in\29707.npy
240 | ../data/in_out/in\29718.npy
241 | ../data/in_out/in\29719.npy
242 | ../data/in_out/in\29720.npy
243 | ../data/in_out/in\29721.npy
244 | ../data/in_out/in\29722.npy
245 | ../data/in_out/in\29728.npy
246 | ../data/in_out/in\29729.npy
247 | ../data/in_out/in\29730.npy
248 | ../data/in_out/in\29731.npy
249 | ../data/in_out/in\29732.npy
250 | ../data/in_out/in\29733.npy
251 | ../data/in_out/in\29734.npy
252 | ../data/in_out/in\29735.npy
253 | ../data/in_out/in\29736.npy
254 | ../data/in_out/in\29737.npy
255 | ../data/in_out/in\29738.npy
256 | ../data/in_out/in\29739.npy
257 | ../data/in_out/in\29740.npy
258 | ../data/in_out/in\29741.npy
259 | ../data/in_out/in\29742.npy
260 | ../data/in_out/in\29743.npy
261 | ../data/in_out/in\29744.npy
262 | ../data/in_out/in\29745.npy
263 | ../data/in_out/in\29746.npy
264 | ../data/in_out/in\29747.npy
265 | ../data/in_out/in\30043.npy
266 | ../data/in_out/in\30044.npy
267 | ../data/in_out/in\30045.npy
268 | ../data/in_out/in\30046.npy
269 | ../data/in_out/in\30047.npy
270 | ../data/in_out/in\30054.npy
271 | ../data/in_out/in\30056.npy
272 | ../data/in_out/in\30057.npy
273 | ../data/in_out/in\30058.npy
274 | ../data/in_out/in\30059.npy
275 | ../data/in_out/in\30060.npy
276 | ../data/in_out/in\30061.npy
277 | ../data/in_out/in\30062.npy
278 | ../data/in_out/in\30063.npy
279 | ../data/in_out/in\30064.npy
280 | ../data/in_out/in\30065.npy
281 | ../data/in_out/in\30066.npy
282 | ../data/in_out/in\30067.npy
283 | ../data/in_out/in\30068.npy
284 | ../data/in_out/in\30069.npy
285 | ../data/in_out/in\30070.npy
286 | ../data/in_out/in\30345.npy
287 | ../data/in_out/in\30358.npy
288 | ../data/in_out/in\30359.npy
289 | ../data/in_out/in\30361.npy
290 | ../data/in_out/in\30362.npy
291 | ../data/in_out/in\30365.npy
292 | ../data/in_out/in\30366.npy
293 | ../data/in_out/in\30368.npy
294 | ../data/in_out/in\30369.npy
295 | ../data/in_out/in\30370.npy
296 | ../data/in_out/in\30372.npy
297 | ../data/in_out/in\30378.npy
298 | ../data/in_out/in\30379.npy
299 | ../data/in_out/in\30380.npy
300 | ../data/in_out/in\30381.npy
301 | ../data/in_out/in\30382.npy
302 | ../data/in_out/in\30383.npy
303 | ../data/in_out/in\30384.npy
304 | ../data/in_out/in\30385.npy
305 | ../data/in_out/in\30386.npy
306 | ../data/in_out/in\30387.npy
307 | ../data/in_out/in\30389.npy
308 | ../data/in_out/in\30390.npy
309 | ../data/in_out/in\30392.npy
310 | ../data/in_out/in\30393.npy
311 | ../data/in_out/in\30394.npy
312 | ../data/in_out/in\30395.npy
313 | ../data/in_out/in\30396.npy
314 | ../data/in_out/in\30404.npy
315 | ../data/in_out/in\30406.npy
316 | ../data/in_out/in\30407.npy
317 | ../data/in_out/in\30408.npy
318 | ../data/in_out/in\30410.npy
319 | ../data/in_out/in\30414.npy
320 | ../data/in_out/in\30682.npy
321 | ../data/in_out/in\30687.npy
322 | ../data/in_out/in\30690.npy
323 | ../data/in_out/in\30691.npy
324 | ../data/in_out/in\30693.npy
325 | ../data/in_out/in\30694.npy
326 | ../data/in_out/in\30695.npy
327 | ../data/in_out/in\30696.npy
328 | ../data/in_out/in\30697.npy
329 | ../data/in_out/in\30706.npy
330 | ../data/in_out/in\30707.npy
331 | ../data/in_out/in\30708.npy
332 | ../data/in_out/in\30709.npy
333 | ../data/in_out/in\30710.npy
334 | ../data/in_out/in\30711.npy
335 | ../data/in_out/in\30712.npy
336 | ../data/in_out/in\30713.npy
337 | ../data/in_out/in\30714.npy
338 | ../data/in_out/in\30715.npy
339 | ../data/in_out/in\30717.npy
340 | ../data/in_out/in\30718.npy
341 | ../data/in_out/in\30719.npy
342 | ../data/in_out/in\30720.npy
343 | ../data/in_out/in\30981.npy
344 | ../data/in_out/in\31012.npy
345 | ../data/in_out/in\31015.npy
346 | ../data/in_out/in\31016.npy
347 | ../data/in_out/in\31017.npy
348 | ../data/in_out/in\31018.npy
349 | ../data/in_out/in\31019.npy
350 | ../data/in_out/in\31020.npy
351 | ../data/in_out/in\31022.npy
352 | ../data/in_out/in\31025.npy
353 | ../data/in_out/in\31026.npy
354 | ../data/in_out/in\31027.npy
355 | ../data/in_out/in\31029.npy
356 | ../data/in_out/in\31030.npy
357 | ../data/in_out/in\31031.npy
358 | ../data/in_out/in\31032.npy
359 | ../data/in_out/in\31033.npy
360 | ../data/in_out/in\31034.npy
361 | ../data/in_out/in\31035.npy
362 | ../data/in_out/in\31036.npy
363 | ../data/in_out/in\31037.npy
364 | ../data/in_out/in\31038.npy
365 | ../data/in_out/in\31040.npy
366 | ../data/in_out/in\31041.npy
367 | ../data/in_out/in\31042.npy
368 | ../data/in_out/in\31043.npy
369 | ../data/in_out/in\31044.npy
370 | ../data/in_out/in\31045.npy
371 | ../data/in_out/in\31337.npy
372 | ../data/in_out/in\31343.npy
373 | ../data/in_out/in\31344.npy
374 | ../data/in_out/in\31345.npy
375 | ../data/in_out/in\31346.npy
376 | ../data/in_out/in\31353.npy
377 | ../data/in_out/in\31354.npy
378 | ../data/in_out/in\31355.npy
379 | ../data/in_out/in\31356.npy
380 | ../data/in_out/in\31357.npy
381 | ../data/in_out/in\31358.npy
382 | ../data/in_out/in\31359.npy
383 | ../data/in_out/in\31360.npy
384 | ../data/in_out/in\31361.npy
385 | ../data/in_out/in\31660.npy
386 | ../data/in_out/in\31661.npy
387 | ../data/in_out/in\31662.npy
388 | ../data/in_out/in\31665.npy
389 | ../data/in_out/in\31669.npy
390 | ../data/in_out/in\31670.npy
391 | ../data/in_out/in\31671.npy
392 | ../data/in_out/in\31672.npy
393 | ../data/in_out/in\31679.npy
394 | ../data/in_out/in\31680.npy
395 | ../data/in_out/in\31682.npy
396 | ../data/in_out/in\31683.npy
397 | ../data/in_out/in\31684.npy
398 | ../data/in_out/in\31686.npy
399 | ../data/in_out/in\31687.npy
400 | ../data/in_out/in\31688.npy
401 | ../data/in_out/in\31994.npy
402 | ../data/in_out/in\31995.npy
403 | ../data/in_out/in\31997.npy
404 | ../data/in_out/in\31998.npy
405 | ../data/in_out/in\32000.npy
406 | ../data/in_out/in\32001.npy
407 | ../data/in_out/in\32003.npy
408 | ../data/in_out/in\32004.npy
409 | ../data/in_out/in\32005.npy
410 | ../data/in_out/in\32006.npy
411 | ../data/in_out/in\32008.npy
412 | ../data/in_out/in\32009.npy
413 | ../data/in_out/in\32010.npy
414 | ../data/in_out/in\32011.npy
415 | ../data/in_out/in\32012.npy
416 | ../data/in_out/in\32013.npy
417 | ../data/in_out/in\32308.npy
418 | ../data/in_out/in\32309.npy
419 | ../data/in_out/in\32312.npy
420 | ../data/in_out/in\32314.npy
421 | ../data/in_out/in\32316.npy
422 | ../data/in_out/in\32319.npy
423 | ../data/in_out/in\32320.npy
424 | ../data/in_out/in\32322.npy
425 | ../data/in_out/in\32323.npy
426 | ../data/in_out/in\32328.npy
427 | ../data/in_out/in\32331.npy
428 | ../data/in_out/in\32332.npy
429 | ../data/in_out/in\32333.npy
430 | ../data/in_out/in\32334.npy
431 | ../data/in_out/in\32335.npy
432 | ../data/in_out/in\32336.npy
433 | ../data/in_out/in\32337.npy
434 | ../data/in_out/in\32633.npy
435 | ../data/in_out/in\32634.npy
436 | ../data/in_out/in\32635.npy
437 | ../data/in_out/in\32636.npy
438 | ../data/in_out/in\32637.npy
439 | ../data/in_out/in\32648.npy
440 | ../data/in_out/in\32649.npy
441 | ../data/in_out/in\32653.npy
442 | ../data/in_out/in\32654.npy
443 | ../data/in_out/in\32655.npy
444 | ../data/in_out/in\32657.npy
445 | ../data/in_out/in\32658.npy
446 | ../data/in_out/in\32659.npy
447 | ../data/in_out/in\32660.npy
448 | ../data/in_out/in\32661.npy
449 | ../data/in_out/in\32662.npy
450 | ../data/in_out/in\32665.npy
451 | ../data/in_out/in\32666.npy
452 | ../data/in_out/in\32961.npy
453 | ../data/in_out/in\32962.npy
454 | ../data/in_out/in\32963.npy
455 | ../data/in_out/in\32964.npy
456 | ../data/in_out/in\32965.npy
457 | ../data/in_out/in\32966.npy
458 | ../data/in_out/in\32967.npy
459 | ../data/in_out/in\32968.npy
460 | ../data/in_out/in\32969.npy
461 | ../data/in_out/in\32972.npy
462 | ../data/in_out/in\32973.npy
463 | ../data/in_out/in\32974.npy
464 | ../data/in_out/in\32975.npy
465 | ../data/in_out/in\32976.npy
466 | ../data/in_out/in\32977.npy
467 | ../data/in_out/in\32978.npy
468 | ../data/in_out/in\32979.npy
469 | ../data/in_out/in\32982.npy
470 | ../data/in_out/in\32983.npy
471 | ../data/in_out/in\32984.npy
472 | ../data/in_out/in\32985.npy
473 | ../data/in_out/in\33287.npy
474 | ../data/in_out/in\33289.npy
475 | ../data/in_out/in\33290.npy
476 | ../data/in_out/in\33291.npy
477 | ../data/in_out/in\33292.npy
478 | ../data/in_out/in\33297.npy
479 | ../data/in_out/in\33298.npy
480 | ../data/in_out/in\33299.npy
481 | ../data/in_out/in\33300.npy
482 | ../data/in_out/in\33301.npy
483 | ../data/in_out/in\33302.npy
484 | ../data/in_out/in\33303.npy
485 | ../data/in_out/in\33304.npy
486 | ../data/in_out/in\33305.npy
487 | ../data/in_out/in\33306.npy
488 | ../data/in_out/in\33307.npy
489 | ../data/in_out/in\33308.npy
490 | ../data/in_out/in\33309.npy
491 | ../data/in_out/in\33315.npy
492 | ../data/in_out/in\33316.npy
493 | ../data/in_out/in\33611.npy
494 | ../data/in_out/in\33612.npy
495 | ../data/in_out/in\33613.npy
496 | ../data/in_out/in\33614.npy
497 | ../data/in_out/in\33615.npy
498 | ../data/in_out/in\33616.npy
499 | ../data/in_out/in\33617.npy
500 | ../data/in_out/in\33618.npy
501 | ../data/in_out/in\33619.npy
502 | ../data/in_out/in\33621.npy
503 | ../data/in_out/in\33622.npy
504 | ../data/in_out/in\33623.npy
505 | ../data/in_out/in\33624.npy
506 | ../data/in_out/in\33627.npy
507 | ../data/in_out/in\33628.npy
508 | ../data/in_out/in\33629.npy
509 | ../data/in_out/in\33630.npy
510 | ../data/in_out/in\33632.npy
511 | ../data/in_out/in\33639.npy
512 | ../data/in_out/in\33640.npy
513 | ../data/in_out/in\33641.npy
514 | ../data/in_out/in\33937.npy
515 | ../data/in_out/in\33938.npy
516 | ../data/in_out/in\33939.npy
517 | ../data/in_out/in\33940.npy
518 | ../data/in_out/in\33941.npy
519 | ../data/in_out/in\33944.npy
520 | ../data/in_out/in\33945.npy
521 | ../data/in_out/in\33946.npy
522 | ../data/in_out/in\33947.npy
523 | ../data/in_out/in\33948.npy
524 | ../data/in_out/in\33949.npy
525 | ../data/in_out/in\33953.npy
526 | ../data/in_out/in\33954.npy
527 | ../data/in_out/in\33955.npy
528 | ../data/in_out/in\33957.npy
529 | ../data/in_out/in\33960.npy
530 | ../data/in_out/in\33962.npy
531 | ../data/in_out/in\33963.npy
532 | ../data/in_out/in\33964.npy
533 | ../data/in_out/in\33965.npy
534 | ../data/in_out/in\33966.npy
535 | ../data/in_out/in\34262.npy
536 | ../data/in_out/in\34263.npy
537 | ../data/in_out/in\34264.npy
538 | ../data/in_out/in\34265.npy
539 | ../data/in_out/in\34266.npy
540 | ../data/in_out/in\34267.npy
541 | ../data/in_out/in\34269.npy
542 | ../data/in_out/in\34274.npy
543 | ../data/in_out/in\34279.npy
544 | ../data/in_out/in\34280.npy
545 | ../data/in_out/in\34281.npy
546 | ../data/in_out/in\34282.npy
547 | ../data/in_out/in\34287.npy
548 | ../data/in_out/in\34288.npy
549 | ../data/in_out/in\34289.npy
550 | ../data/in_out/in\34290.npy
551 | ../data/in_out/in\34291.npy
552 | ../data/in_out/in\34588.npy
553 | ../data/in_out/in\34591.npy
554 | ../data/in_out/in\34592.npy
555 | ../data/in_out/in\34593.npy
556 | ../data/in_out/in\34602.npy
557 | ../data/in_out/in\34603.npy
558 | ../data/in_out/in\34604.npy
559 | ../data/in_out/in\34605.npy
560 | ../data/in_out/in\34606.npy
561 | ../data/in_out/in\34607.npy
562 | ../data/in_out/in\34611.npy
563 | ../data/in_out/in\34612.npy
564 | ../data/in_out/in\34613.npy
565 | ../data/in_out/in\34614.npy
566 | ../data/in_out/in\34615.npy
567 | ../data/in_out/in\34616.npy
568 | ../data/in_out/in\34916.npy
569 | ../data/in_out/in\34917.npy
570 | ../data/in_out/in\34927.npy
571 | ../data/in_out/in\34928.npy
572 | ../data/in_out/in\34929.npy
573 | ../data/in_out/in\34930.npy
574 | ../data/in_out/in\34931.npy
575 | ../data/in_out/in\34935.npy
576 | ../data/in_out/in\34936.npy
577 | ../data/in_out/in\34937.npy
578 | ../data/in_out/in\34938.npy
579 | ../data/in_out/in\34939.npy
580 | ../data/in_out/in\34940.npy
581 | ../data/in_out/in\35242.npy
582 | ../data/in_out/in\35244.npy
583 | ../data/in_out/in\35247.npy
584 | ../data/in_out/in\35248.npy
585 | ../data/in_out/in\35249.npy
586 | ../data/in_out/in\35250.npy
587 | ../data/in_out/in\35252.npy
588 | ../data/in_out/in\35253.npy
589 | ../data/in_out/in\35254.npy
590 | ../data/in_out/in\35255.npy
591 | ../data/in_out/in\35261.npy
592 | ../data/in_out/in\35262.npy
593 | ../data/in_out/in\35263.npy
594 | ../data/in_out/in\35264.npy
595 | ../data/in_out/in\35265.npy
596 | ../data/in_out/in\35577.npy
597 | ../data/in_out/in\35578.npy
598 | ../data/in_out/in\35579.npy
599 | ../data/in_out/in\35587.npy
600 | ../data/in_out/in\35588.npy
601 | ../data/in_out/in\35589.npy
602 | ../data/in_out/in\35894.npy
603 | ../data/in_out/in\35912.npy
604 | ../data/in_out/in\36237.npy
605 | ../data/in_out/in\36879.npy
606 | ../data/in_out/in\37188.npy
607 | ../data/in_out/in\37189.npy
608 | ../data/in_out/in\37191.npy
609 | ../data/in_out/in\37192.npy
610 | ../data/in_out/in\37193.npy
611 | ../data/in_out/in\37204.npy
612 | ../data/in_out/in\37512.npy
613 | ../data/in_out/in\37513.npy
614 | ../data/in_out/in\37514.npy
615 | ../data/in_out/in\37519.npy
616 | ../data/in_out/in\37529.npy
617 | ../data/in_out/in\37530.npy
618 | ../data/in_out/in\37842.npy
619 | ../data/in_out/in\37854.npy
620 | ../data/in_out/in\37855.npy
621 | ../data/in_out/in\37856.npy
622 | ../data/in_out/in\38162.npy
623 | ../data/in_out/in\38178.npy
624 | ../data/in_out/in\38179.npy
625 | ../data/in_out/in\38486.npy
626 | ../data/in_out/in\38487.npy
627 | ../data/in_out/in\38503.npy
628 | ../data/in_out/in\38535.npy
629 | ../data/in_out/in\38815.npy
630 | ../data/in_out/in\38828.npy
631 | ../data/in_out/in\38829.npy
632 | ../data/in_out/in\38860.npy
633 | ../data/in_out/in\39154.npy
634 | ../data/in_out/in\39181.npy
635 | ../data/in_out/in\39468.npy
636 | ../data/in_out/in\39478.npy
637 | ../data/in_out/in\39789.npy
638 | ../data/in_out/in\39790.npy
639 | ../data/in_out/in\39791.npy
640 | ../data/in_out/in\39792.npy
641 | ../data/in_out/in\39795.npy
642 | ../data/in_out/in\39803.npy
643 | ../data/in_out/in\40114.npy
644 | ../data/in_out/in\40128.npy
645 | ../data/in_out/in\40129.npy
646 | ../data/in_out/in\40441.npy
647 | ../data/in_out/in\40442.npy
648 | ../data/in_out/in\40445.npy
649 | ../data/in_out/in\40446.npy
650 | ../data/in_out/in\40481.npy
651 | ../data/in_out/in\40482.npy
652 | ../data/in_out/in\43416.npy
653 | ../data/in_out/in\48876.npy
654 | ../data/in_out/out\17691.npy
655 | ../data/in_out/out\17692.npy
656 | ../data/in_out/out\21590.npy
657 | ../data/in_out/out\24509.npy
658 | ../data/in_out/out\24522.npy
659 | ../data/in_out/out\24834.npy
660 | ../data/in_out/out\24847.npy
661 | ../data/in_out/out\24849.npy
662 | ../data/in_out/out\25164.npy
663 | ../data/in_out/out\25171.npy
664 | ../data/in_out/out\25172.npy
665 | ../data/in_out/out\25173.npy
666 | ../data/in_out/out\25174.npy
667 | ../data/in_out/out\25176.npy
668 | ../data/in_out/out\25179.npy
669 | ../data/in_out/out\25180.npy
670 | ../data/in_out/out\25181.npy
671 | ../data/in_out/out\25184.npy
672 | ../data/in_out/out\25487.npy
673 | ../data/in_out/out\25497.npy
674 | ../data/in_out/out\25499.npy
675 | ../data/in_out/out\25505.npy
676 | ../data/in_out/out\25506.npy
677 | ../data/in_out/out\25507.npy
678 | ../data/in_out/out\25821.npy
679 | ../data/in_out/out\25822.npy
680 | ../data/in_out/out\25824.npy
681 | ../data/in_out/out\25825.npy
682 | ../data/in_out/out\25826.npy
683 | ../data/in_out/out\25827.npy
684 | ../data/in_out/out\25828.npy
685 | ../data/in_out/out\25829.npy
686 | ../data/in_out/out\25830.npy
687 | ../data/in_out/out\25831.npy
688 | ../data/in_out/out\25832.npy
689 | ../data/in_out/out\25833.npy
690 | ../data/in_out/out\26154.npy
691 | ../data/in_out/out\26155.npy
692 | ../data/in_out/out\26156.npy
693 | ../data/in_out/out\26157.npy
694 | ../data/in_out/out\26460.npy
695 | ../data/in_out/out\26461.npy
696 | ../data/in_out/out\26471.npy
697 | ../data/in_out/out\26472.npy
698 | ../data/in_out/out\26473.npy
699 | ../data/in_out/out\26474.npy
700 | ../data/in_out/out\26476.npy
701 | ../data/in_out/out\26480.npy
702 | ../data/in_out/out\26481.npy
703 | ../data/in_out/out\26482.npy
704 | ../data/in_out/out\26483.npy
705 | ../data/in_out/out\26485.npy
706 | ../data/in_out/out\26486.npy
707 | ../data/in_out/out\26783.npy
708 | ../data/in_out/out\26785.npy
709 | ../data/in_out/out\26796.npy
710 | ../data/in_out/out\26797.npy
711 | ../data/in_out/out\26800.npy
712 | ../data/in_out/out\26807.npy
713 | ../data/in_out/out\26809.npy
714 | ../data/in_out/out\26810.npy
715 | ../data/in_out/out\26811.npy
716 | ../data/in_out/out\26812.npy
717 | ../data/in_out/out\26813.npy
718 | ../data/in_out/out\27118.npy
719 | ../data/in_out/out\27119.npy
720 | ../data/in_out/out\27122.npy
721 | ../data/in_out/out\27134.npy
722 | ../data/in_out/out\27135.npy
723 | ../data/in_out/out\27136.npy
724 | ../data/in_out/out\27137.npy
725 | ../data/in_out/out\27438.npy
726 | ../data/in_out/out\27440.npy
727 | ../data/in_out/out\27443.npy
728 | ../data/in_out/out\27447.npy
729 | ../data/in_out/out\27449.npy
730 | ../data/in_out/out\27460.npy
731 | ../data/in_out/out\27461.npy
732 | ../data/in_out/out\27462.npy
733 | ../data/in_out/out\27463.npy
734 | ../data/in_out/out\27493.npy
735 | ../data/in_out/out\27494.npy
736 | ../data/in_out/out\27763.npy
737 | ../data/in_out/out\27765.npy
738 | ../data/in_out/out\27766.npy
739 | ../data/in_out/out\27767.npy
740 | ../data/in_out/out\27771.npy
741 | ../data/in_out/out\27775.npy
742 | ../data/in_out/out\27780.npy
743 | ../data/in_out/out\27783.npy
744 | ../data/in_out/out\27785.npy
745 | ../data/in_out/out\27786.npy
746 | ../data/in_out/out\27787.npy
747 | ../data/in_out/out\27788.npy
748 | ../data/in_out/out\27818.npy
749 | ../data/in_out/out\28087.npy
750 | ../data/in_out/out\28089.npy
751 | ../data/in_out/out\28090.npy
752 | ../data/in_out/out\28091.npy
753 | ../data/in_out/out\28092.npy
754 | ../data/in_out/out\28093.npy
755 | ../data/in_out/out\28094.npy
756 | ../data/in_out/out\28095.npy
757 | ../data/in_out/out\28096.npy
758 | ../data/in_out/out\28097.npy
759 | ../data/in_out/out\28098.npy
760 | ../data/in_out/out\28099.npy
761 | ../data/in_out/out\28101.npy
762 | ../data/in_out/out\28103.npy
763 | ../data/in_out/out\28104.npy
764 | ../data/in_out/out\28107.npy
765 | ../data/in_out/out\28108.npy
766 | ../data/in_out/out\28109.npy
767 | ../data/in_out/out\28111.npy
768 | ../data/in_out/out\28112.npy
769 | ../data/in_out/out\28113.npy
770 | ../data/in_out/out\28114.npy
771 | ../data/in_out/out\28115.npy
772 | ../data/in_out/out\28141.npy
773 | ../data/in_out/out\28142.npy
774 | ../data/in_out/out\28412.npy
775 | ../data/in_out/out\28414.npy
776 | ../data/in_out/out\28415.npy
777 | ../data/in_out/out\28416.npy
778 | ../data/in_out/out\28417.npy
779 | ../data/in_out/out\28418.npy
780 | ../data/in_out/out\28419.npy
781 | ../data/in_out/out\28422.npy
782 | ../data/in_out/out\28423.npy
783 | ../data/in_out/out\28429.npy
784 | ../data/in_out/out\28430.npy
785 | ../data/in_out/out\28431.npy
786 | ../data/in_out/out\28432.npy
787 | ../data/in_out/out\28433.npy
788 | ../data/in_out/out\28434.npy
789 | ../data/in_out/out\28435.npy
790 | ../data/in_out/out\28436.npy
791 | ../data/in_out/out\28437.npy
792 | ../data/in_out/out\28438.npy
793 | ../data/in_out/out\28440.npy
794 | ../data/in_out/out\28442.npy
795 | ../data/in_out/out\28443.npy
796 | ../data/in_out/out\28723.npy
797 | ../data/in_out/out\28740.npy
798 | ../data/in_out/out\28744.npy
799 | ../data/in_out/out\28745.npy
800 | ../data/in_out/out\28746.npy
801 | ../data/in_out/out\28747.npy
802 | ../data/in_out/out\28748.npy
803 | ../data/in_out/out\28749.npy
804 | ../data/in_out/out\28751.npy
805 | ../data/in_out/out\28753.npy
806 | ../data/in_out/out\28754.npy
807 | ../data/in_out/out\28755.npy
808 | ../data/in_out/out\28756.npy
809 | ../data/in_out/out\28757.npy
810 | ../data/in_out/out\28760.npy
811 | ../data/in_out/out\28761.npy
812 | ../data/in_out/out\28762.npy
813 | ../data/in_out/out\28763.npy
814 | ../data/in_out/out\28764.npy
815 | ../data/in_out/out\28765.npy
816 | ../data/in_out/out\28766.npy
817 | ../data/in_out/out\28767.npy
818 | ../data/in_out/out\28768.npy
819 | ../data/in_out/out\28789.npy
820 | ../data/in_out/out\29047.npy
821 | ../data/in_out/out\29049.npy
822 | ../data/in_out/out\29051.npy
823 | ../data/in_out/out\29053.npy
824 | ../data/in_out/out\29055.npy
825 | ../data/in_out/out\29057.npy
826 | ../data/in_out/out\29060.npy
827 | ../data/in_out/out\29062.npy
828 | ../data/in_out/out\29064.npy
829 | ../data/in_out/out\29067.npy
830 | ../data/in_out/out\29068.npy
831 | ../data/in_out/out\29069.npy
832 | ../data/in_out/out\29070.npy
833 | ../data/in_out/out\29071.npy
834 | ../data/in_out/out\29072.npy
835 | ../data/in_out/out\29073.npy
836 | ../data/in_out/out\29076.npy
837 | ../data/in_out/out\29077.npy
838 | ../data/in_out/out\29078.npy
839 | ../data/in_out/out\29079.npy
840 | ../data/in_out/out\29080.npy
841 | ../data/in_out/out\29081.npy
842 | ../data/in_out/out\29082.npy
843 | ../data/in_out/out\29083.npy
844 | ../data/in_out/out\29084.npy
845 | ../data/in_out/out\29085.npy
846 | ../data/in_out/out\29086.npy
847 | ../data/in_out/out\29087.npy
848 | ../data/in_out/out\29088.npy
849 | ../data/in_out/out\29089.npy
850 | ../data/in_out/out\29091.npy
851 | ../data/in_out/out\29092.npy
852 | ../data/in_out/out\29093.npy
853 | ../data/in_out/out\29094.npy
854 | ../data/in_out/out\29113.npy
855 | ../data/in_out/out\29114.npy
856 | ../data/in_out/out\29115.npy
857 | ../data/in_out/out\29382.npy
858 | ../data/in_out/out\29385.npy
859 | ../data/in_out/out\29386.npy
860 | ../data/in_out/out\29387.npy
861 | ../data/in_out/out\29393.npy
862 | ../data/in_out/out\29394.npy
863 | ../data/in_out/out\29395.npy
864 | ../data/in_out/out\29396.npy
865 | ../data/in_out/out\29397.npy
866 | ../data/in_out/out\29398.npy
867 | ../data/in_out/out\29403.npy
868 | ../data/in_out/out\29404.npy
869 | ../data/in_out/out\29405.npy
870 | ../data/in_out/out\29406.npy
871 | ../data/in_out/out\29407.npy
872 | ../data/in_out/out\29408.npy
873 | ../data/in_out/out\29409.npy
874 | ../data/in_out/out\29410.npy
875 | ../data/in_out/out\29411.npy
876 | ../data/in_out/out\29412.npy
877 | ../data/in_out/out\29413.npy
878 | ../data/in_out/out\29414.npy
879 | ../data/in_out/out\29415.npy
880 | ../data/in_out/out\29416.npy
881 | ../data/in_out/out\29417.npy
882 | ../data/in_out/out\29418.npy
883 | ../data/in_out/out\29419.npy
884 | ../data/in_out/out\29420.npy
885 | ../data/in_out/out\29421.npy
886 | ../data/in_out/out\29422.npy
887 | ../data/in_out/out\29425.npy
888 | ../data/in_out/out\29429.npy
889 | ../data/in_out/out\29430.npy
890 | ../data/in_out/out\29433.npy
891 | ../data/in_out/out\29707.npy
892 | ../data/in_out/out\29718.npy
893 | ../data/in_out/out\29719.npy
894 | ../data/in_out/out\29720.npy
895 | ../data/in_out/out\29721.npy
896 | ../data/in_out/out\29722.npy
897 | ../data/in_out/out\29728.npy
898 | ../data/in_out/out\29729.npy
899 | ../data/in_out/out\29730.npy
900 | ../data/in_out/out\29731.npy
901 | ../data/in_out/out\29732.npy
902 | ../data/in_out/out\29733.npy
903 | ../data/in_out/out\29734.npy
904 | ../data/in_out/out\29735.npy
905 | ../data/in_out/out\29736.npy
906 | ../data/in_out/out\29737.npy
907 | ../data/in_out/out\29738.npy
908 | ../data/in_out/out\29739.npy
909 | ../data/in_out/out\29740.npy
910 | ../data/in_out/out\29741.npy
911 | ../data/in_out/out\29742.npy
912 | ../data/in_out/out\29743.npy
913 | ../data/in_out/out\29744.npy
914 | ../data/in_out/out\29745.npy
915 | ../data/in_out/out\29746.npy
916 | ../data/in_out/out\29747.npy
917 | ../data/in_out/out\30043.npy
918 | ../data/in_out/out\30044.npy
919 | ../data/in_out/out\30045.npy
920 | ../data/in_out/out\30046.npy
921 | ../data/in_out/out\30047.npy
922 | ../data/in_out/out\30054.npy
923 | ../data/in_out/out\30056.npy
924 | ../data/in_out/out\30057.npy
925 | ../data/in_out/out\30058.npy
926 | ../data/in_out/out\30059.npy
927 | ../data/in_out/out\30060.npy
928 | ../data/in_out/out\30061.npy
929 | ../data/in_out/out\30062.npy
930 | ../data/in_out/out\30063.npy
931 | ../data/in_out/out\30064.npy
932 | ../data/in_out/out\30065.npy
933 | ../data/in_out/out\30066.npy
934 | ../data/in_out/out\30067.npy
935 | ../data/in_out/out\30068.npy
936 | ../data/in_out/out\30069.npy
937 | ../data/in_out/out\30070.npy
938 | ../data/in_out/out\30345.npy
939 | ../data/in_out/out\30358.npy
940 | ../data/in_out/out\30359.npy
941 | ../data/in_out/out\30361.npy
942 | ../data/in_out/out\30362.npy
943 | ../data/in_out/out\30363.npy
944 | ../data/in_out/out\30364.npy
945 | ../data/in_out/out\30365.npy
946 | ../data/in_out/out\30366.npy
947 | ../data/in_out/out\30368.npy
948 | ../data/in_out/out\30369.npy
949 | ../data/in_out/out\30370.npy
950 | ../data/in_out/out\30372.npy
951 | ../data/in_out/out\30378.npy
952 | ../data/in_out/out\30379.npy
953 | ../data/in_out/out\30380.npy
954 | ../data/in_out/out\30381.npy
955 | ../data/in_out/out\30382.npy
956 | ../data/in_out/out\30383.npy
957 | ../data/in_out/out\30384.npy
958 | ../data/in_out/out\30385.npy
959 | ../data/in_out/out\30386.npy
960 | ../data/in_out/out\30387.npy
961 | ../data/in_out/out\30389.npy
962 | ../data/in_out/out\30390.npy
963 | ../data/in_out/out\30392.npy
964 | ../data/in_out/out\30393.npy
965 | ../data/in_out/out\30394.npy
966 | ../data/in_out/out\30395.npy
967 | ../data/in_out/out\30396.npy
968 | ../data/in_out/out\30406.npy
969 | ../data/in_out/out\30407.npy
970 | ../data/in_out/out\30408.npy
971 | ../data/in_out/out\30410.npy
972 | ../data/in_out/out\30414.npy
973 | ../data/in_out/out\30682.npy
974 | ../data/in_out/out\30687.npy
975 | ../data/in_out/out\30689.npy
976 | ../data/in_out/out\30690.npy
977 | ../data/in_out/out\30691.npy
978 | ../data/in_out/out\30693.npy
979 | ../data/in_out/out\30694.npy
980 | ../data/in_out/out\30695.npy
981 | ../data/in_out/out\30696.npy
982 | ../data/in_out/out\30697.npy
983 | ../data/in_out/out\30706.npy
984 | ../data/in_out/out\30707.npy
985 | ../data/in_out/out\30708.npy
986 | ../data/in_out/out\30709.npy
987 | ../data/in_out/out\30710.npy
988 | ../data/in_out/out\30711.npy
989 | ../data/in_out/out\30712.npy
990 | ../data/in_out/out\30713.npy
991 | ../data/in_out/out\30714.npy
992 | ../data/in_out/out\30715.npy
993 | ../data/in_out/out\30717.npy
994 | ../data/in_out/out\30718.npy
995 | ../data/in_out/out\30719.npy
996 | ../data/in_out/out\30981.npy
997 | ../data/in_out/out\31012.npy
998 | ../data/in_out/out\31015.npy
999 | ../data/in_out/out\31016.npy
1000 | ../data/in_out/out\31017.npy
1001 | ../data/in_out/out\31018.npy
1002 | ../data/in_out/out\31019.npy
1003 | ../data/in_out/out\31020.npy
1004 | ../data/in_out/out\31022.npy
1005 | ../data/in_out/out\31025.npy
1006 | ../data/in_out/out\31026.npy
1007 | ../data/in_out/out\31027.npy
1008 | ../data/in_out/out\31028.npy
1009 | ../data/in_out/out\31029.npy
1010 | ../data/in_out/out\31030.npy
1011 | ../data/in_out/out\31031.npy
1012 | ../data/in_out/out\31032.npy
1013 | ../data/in_out/out\31033.npy
1014 | ../data/in_out/out\31034.npy
1015 | ../data/in_out/out\31035.npy
1016 | ../data/in_out/out\31036.npy
1017 | ../data/in_out/out\31037.npy
1018 | ../data/in_out/out\31038.npy
1019 | ../data/in_out/out\31040.npy
1020 | ../data/in_out/out\31041.npy
1021 | ../data/in_out/out\31042.npy
1022 | ../data/in_out/out\31043.npy
1023 | ../data/in_out/out\31044.npy
1024 | ../data/in_out/out\31337.npy
1025 | ../data/in_out/out\31343.npy
1026 | ../data/in_out/out\31344.npy
1027 | ../data/in_out/out\31345.npy
1028 | ../data/in_out/out\31346.npy
1029 | ../data/in_out/out\31353.npy
1030 | ../data/in_out/out\31354.npy
1031 | ../data/in_out/out\31355.npy
1032 | ../data/in_out/out\31356.npy
1033 | ../data/in_out/out\31357.npy
1034 | ../data/in_out/out\31358.npy
1035 | ../data/in_out/out\31359.npy
1036 | ../data/in_out/out\31360.npy
1037 | ../data/in_out/out\31361.npy
1038 | ../data/in_out/out\31660.npy
1039 | ../data/in_out/out\31661.npy
1040 | ../data/in_out/out\31662.npy
1041 | ../data/in_out/out\31665.npy
1042 | ../data/in_out/out\31669.npy
1043 | ../data/in_out/out\31670.npy
1044 | ../data/in_out/out\31671.npy
1045 | ../data/in_out/out\31672.npy
1046 | ../data/in_out/out\31679.npy
1047 | ../data/in_out/out\31680.npy
1048 | ../data/in_out/out\31682.npy
1049 | ../data/in_out/out\31683.npy
1050 | ../data/in_out/out\31684.npy
1051 | ../data/in_out/out\31686.npy
1052 | ../data/in_out/out\31687.npy
1053 | ../data/in_out/out\31993.npy
1054 | ../data/in_out/out\31994.npy
1055 | ../data/in_out/out\31995.npy
1056 | ../data/in_out/out\31997.npy
1057 | ../data/in_out/out\31998.npy
1058 | ../data/in_out/out\32000.npy
1059 | ../data/in_out/out\32001.npy
1060 | ../data/in_out/out\32003.npy
1061 | ../data/in_out/out\32004.npy
1062 | ../data/in_out/out\32005.npy
1063 | ../data/in_out/out\32006.npy
1064 | ../data/in_out/out\32007.npy
1065 | ../data/in_out/out\32008.npy
1066 | ../data/in_out/out\32009.npy
1067 | ../data/in_out/out\32010.npy
1068 | ../data/in_out/out\32011.npy
1069 | ../data/in_out/out\32012.npy
1070 | ../data/in_out/out\32013.npy
1071 | ../data/in_out/out\32307.npy
1072 | ../data/in_out/out\32308.npy
1073 | ../data/in_out/out\32309.npy
1074 | ../data/in_out/out\32312.npy
1075 | ../data/in_out/out\32314.npy
1076 | ../data/in_out/out\32316.npy
1077 | ../data/in_out/out\32318.npy
1078 | ../data/in_out/out\32319.npy
1079 | ../data/in_out/out\32320.npy
1080 | ../data/in_out/out\32322.npy
1081 | ../data/in_out/out\32323.npy
1082 | ../data/in_out/out\32328.npy
1083 | ../data/in_out/out\32330.npy
1084 | ../data/in_out/out\32331.npy
1085 | ../data/in_out/out\32332.npy
1086 | ../data/in_out/out\32333.npy
1087 | ../data/in_out/out\32334.npy
1088 | ../data/in_out/out\32335.npy
1089 | ../data/in_out/out\32336.npy
1090 | ../data/in_out/out\32337.npy
1091 | ../data/in_out/out\32633.npy
1092 | ../data/in_out/out\32634.npy
1093 | ../data/in_out/out\32635.npy
1094 | ../data/in_out/out\32636.npy
1095 | ../data/in_out/out\32637.npy
1096 | ../data/in_out/out\32648.npy
1097 | ../data/in_out/out\32649.npy
1098 | ../data/in_out/out\32653.npy
1099 | ../data/in_out/out\32654.npy
1100 | ../data/in_out/out\32655.npy
1101 | ../data/in_out/out\32657.npy
1102 | ../data/in_out/out\32658.npy
1103 | ../data/in_out/out\32659.npy
1104 | ../data/in_out/out\32660.npy
1105 | ../data/in_out/out\32661.npy
1106 | ../data/in_out/out\32662.npy
1107 | ../data/in_out/out\32665.npy
1108 | ../data/in_out/out\32666.npy
1109 | ../data/in_out/out\32961.npy
1110 | ../data/in_out/out\32962.npy
1111 | ../data/in_out/out\32963.npy
1112 | ../data/in_out/out\32964.npy
1113 | ../data/in_out/out\32965.npy
1114 | ../data/in_out/out\32966.npy
1115 | ../data/in_out/out\32967.npy
1116 | ../data/in_out/out\32968.npy
1117 | ../data/in_out/out\32969.npy
1118 | ../data/in_out/out\32972.npy
1119 | ../data/in_out/out\32973.npy
1120 | ../data/in_out/out\32974.npy
1121 | ../data/in_out/out\32975.npy
1122 | ../data/in_out/out\32976.npy
1123 | ../data/in_out/out\32978.npy
1124 | ../data/in_out/out\32979.npy
1125 | ../data/in_out/out\32982.npy
1126 | ../data/in_out/out\32983.npy
1127 | ../data/in_out/out\32984.npy
1128 | ../data/in_out/out\33286.npy
1129 | ../data/in_out/out\33287.npy
1130 | ../data/in_out/out\33289.npy
1131 | ../data/in_out/out\33290.npy
1132 | ../data/in_out/out\33291.npy
1133 | ../data/in_out/out\33292.npy
1134 | ../data/in_out/out\33297.npy
1135 | ../data/in_out/out\33298.npy
1136 | ../data/in_out/out\33299.npy
1137 | ../data/in_out/out\33300.npy
1138 | ../data/in_out/out\33301.npy
1139 | ../data/in_out/out\33302.npy
1140 | ../data/in_out/out\33303.npy
1141 | ../data/in_out/out\33304.npy
1142 | ../data/in_out/out\33305.npy
1143 | ../data/in_out/out\33306.npy
1144 | ../data/in_out/out\33307.npy
1145 | ../data/in_out/out\33308.npy
1146 | ../data/in_out/out\33309.npy
1147 | ../data/in_out/out\33315.npy
1148 | ../data/in_out/out\33316.npy
1149 | ../data/in_out/out\33611.npy
1150 | ../data/in_out/out\33612.npy
1151 | ../data/in_out/out\33613.npy
1152 | ../data/in_out/out\33614.npy
1153 | ../data/in_out/out\33615.npy
1154 | ../data/in_out/out\33616.npy
1155 | ../data/in_out/out\33617.npy
1156 | ../data/in_out/out\33618.npy
1157 | ../data/in_out/out\33619.npy
1158 | ../data/in_out/out\33621.npy
1159 | ../data/in_out/out\33622.npy
1160 | ../data/in_out/out\33623.npy
1161 | ../data/in_out/out\33624.npy
1162 | ../data/in_out/out\33625.npy
1163 | ../data/in_out/out\33627.npy
1164 | ../data/in_out/out\33628.npy
1165 | ../data/in_out/out\33629.npy
1166 | ../data/in_out/out\33630.npy
1167 | ../data/in_out/out\33632.npy
1168 | ../data/in_out/out\33639.npy
1169 | ../data/in_out/out\33640.npy
1170 | ../data/in_out/out\33641.npy
1171 | ../data/in_out/out\33642.npy
1172 | ../data/in_out/out\33937.npy
1173 | ../data/in_out/out\33938.npy
1174 | ../data/in_out/out\33939.npy
1175 | ../data/in_out/out\33940.npy
1176 | ../data/in_out/out\33941.npy
1177 | ../data/in_out/out\33942.npy
1178 | ../data/in_out/out\33944.npy
1179 | ../data/in_out/out\33945.npy
1180 | ../data/in_out/out\33946.npy
1181 | ../data/in_out/out\33947.npy
1182 | ../data/in_out/out\33948.npy
1183 | ../data/in_out/out\33949.npy
1184 | ../data/in_out/out\33953.npy
1185 | ../data/in_out/out\33954.npy
1186 | ../data/in_out/out\33955.npy
1187 | ../data/in_out/out\33956.npy
1188 | ../data/in_out/out\33957.npy
1189 | ../data/in_out/out\33960.npy
1190 | ../data/in_out/out\33962.npy
1191 | ../data/in_out/out\33963.npy
1192 | ../data/in_out/out\33964.npy
1193 | ../data/in_out/out\33965.npy
1194 | ../data/in_out/out\33966.npy
1195 | ../data/in_out/out\34262.npy
1196 | ../data/in_out/out\34263.npy
1197 | ../data/in_out/out\34264.npy
1198 | ../data/in_out/out\34265.npy
1199 | ../data/in_out/out\34266.npy
1200 | ../data/in_out/out\34267.npy
1201 | ../data/in_out/out\34269.npy
1202 | ../data/in_out/out\34274.npy
1203 | ../data/in_out/out\34279.npy
1204 | ../data/in_out/out\34280.npy
1205 | ../data/in_out/out\34281.npy
1206 | ../data/in_out/out\34282.npy
1207 | ../data/in_out/out\34287.npy
1208 | ../data/in_out/out\34288.npy
1209 | ../data/in_out/out\34289.npy
1210 | ../data/in_out/out\34290.npy
1211 | ../data/in_out/out\34291.npy
1212 | ../data/in_out/out\34588.npy
1213 | ../data/in_out/out\34591.npy
1214 | ../data/in_out/out\34592.npy
1215 | ../data/in_out/out\34598.npy
1216 | ../data/in_out/out\34602.npy
1217 | ../data/in_out/out\34603.npy
1218 | ../data/in_out/out\34604.npy
1219 | ../data/in_out/out\34605.npy
1220 | ../data/in_out/out\34606.npy
1221 | ../data/in_out/out\34607.npy
1222 | ../data/in_out/out\34611.npy
1223 | ../data/in_out/out\34612.npy
1224 | ../data/in_out/out\34613.npy
1225 | ../data/in_out/out\34614.npy
1226 | ../data/in_out/out\34615.npy
1227 | ../data/in_out/out\34616.npy
1228 | ../data/in_out/out\34617.npy
1229 | ../data/in_out/out\34916.npy
1230 | ../data/in_out/out\34917.npy
1231 | ../data/in_out/out\34927.npy
1232 | ../data/in_out/out\34928.npy
1233 | ../data/in_out/out\34929.npy
1234 | ../data/in_out/out\34930.npy
1235 | ../data/in_out/out\34931.npy
1236 | ../data/in_out/out\34934.npy
1237 | ../data/in_out/out\34935.npy
1238 | ../data/in_out/out\34936.npy
1239 | ../data/in_out/out\34937.npy
1240 | ../data/in_out/out\34938.npy
1241 | ../data/in_out/out\34939.npy
1242 | ../data/in_out/out\34940.npy
1243 | ../data/in_out/out\35242.npy
1244 | ../data/in_out/out\35244.npy
1245 | ../data/in_out/out\35247.npy
1246 | ../data/in_out/out\35248.npy
1247 | ../data/in_out/out\35249.npy
1248 | ../data/in_out/out\35250.npy
1249 | ../data/in_out/out\35252.npy
1250 | ../data/in_out/out\35253.npy
1251 | ../data/in_out/out\35254.npy
1252 | ../data/in_out/out\35255.npy
1253 | ../data/in_out/out\35261.npy
1254 | ../data/in_out/out\35262.npy
1255 | ../data/in_out/out\35263.npy
1256 | ../data/in_out/out\35264.npy
1257 | ../data/in_out/out\35265.npy
1258 | ../data/in_out/out\35577.npy
1259 | ../data/in_out/out\35578.npy
1260 | ../data/in_out/out\35579.npy
1261 | ../data/in_out/out\35587.npy
1262 | ../data/in_out/out\35588.npy
1263 | ../data/in_out/out\35894.npy
1264 | ../data/in_out/out\35912.npy
1265 | ../data/in_out/out\36237.npy
1266 | ../data/in_out/out\36879.npy
1267 | ../data/in_out/out\37188.npy
1268 | ../data/in_out/out\37189.npy
1269 | ../data/in_out/out\37191.npy
1270 | ../data/in_out/out\37192.npy
1271 | ../data/in_out/out\37193.npy
1272 | ../data/in_out/out\37204.npy
1273 | ../data/in_out/out\37512.npy
1274 | ../data/in_out/out\37513.npy
1275 | ../data/in_out/out\37514.npy
1276 | ../data/in_out/out\37519.npy
1277 | ../data/in_out/out\37529.npy
1278 | ../data/in_out/out\37530.npy
1279 | ../data/in_out/out\37837.npy
1280 | ../data/in_out/out\37838.npy
1281 | ../data/in_out/out\37854.npy
1282 | ../data/in_out/out\37855.npy
1283 | ../data/in_out/out\38159.npy
1284 | ../data/in_out/out\38161.npy
1285 | ../data/in_out/out\38162.npy
1286 | ../data/in_out/out\38178.npy
1287 | ../data/in_out/out\38179.npy
1288 | ../data/in_out/out\38486.npy
1289 | ../data/in_out/out\38487.npy
1290 | ../data/in_out/out\38503.npy
1291 | ../data/in_out/out\38811.npy
1292 | ../data/in_out/out\38812.npy
1293 | ../data/in_out/out\38815.npy
1294 | ../data/in_out/out\38828.npy
1295 | ../data/in_out/out\38829.npy
1296 | ../data/in_out/out\38860.npy
1297 | ../data/in_out/out\39143.npy
1298 | ../data/in_out/out\39154.npy
1299 | ../data/in_out/out\39181.npy
1300 | ../data/in_out/out\39468.npy
1301 | ../data/in_out/out\39478.npy
1302 | ../data/in_out/out\39789.npy
1303 | ../data/in_out/out\39791.npy
1304 | ../data/in_out/out\39792.npy
1305 | ../data/in_out/out\39795.npy
1306 | ../data/in_out/out\39803.npy
1307 | ../data/in_out/out\40114.npy
1308 | ../data/in_out/out\40128.npy
1309 | ../data/in_out/out\40129.npy
1310 | ../data/in_out/out\40441.npy
1311 | ../data/in_out/out\40442.npy
1312 | ../data/in_out/out\40446.npy
1313 | ../data/in_out/out\40481.npy
1314 | ../data/in_out/out\40482.npy
1315 | ../data/in_out/out\43416.npy
1316 | ../data/in_out/out\43741.npy
1317 | ../data/in_out/out\48876.npy
--------------------------------------------------------------------------------