-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmaster.py
More file actions
58 lines (42 loc) · 1.29 KB
/
master.py
File metadata and controls
58 lines (42 loc) · 1.29 KB
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
import multiprocessing
from dataprovider.frameprovider import provider_run
class master:
def __init__ (self,config=None):
pass;
def run(self,config):
# step 1 get the json infos and convet it into the training lists
f = open(self.data_json)
infos = f.readlines()
print(infos)
# step2 create the data provider
p_all = []
read_process = []
for provider in self.provider_list:
# for i in range(config.num_provider_thread):
read_process.append(multiprocessing.Process(target=provider.run))
for p in read_process:
p_all.append(p)
p.start()
# step3 create the trainer
training_process = multiprocessing.Process(target=self.trainer.run)
training_process.start()
# step4 feed the cut params
for i, item in enumerate(infos):
self.queue_list[i % len(self.queue_list)].put((item))
# for info in infos:
# for q in self.queue_list:
# print(info)
# q.put((info))
for q in self.queue_list:
q.put(None)
for p in p_all:
p.join()
for q in self.queue_out_list:
q.put(None)
training_process.join()
def set_training(self,data_json,queue_list,queue_out_list,provider_list,trainer,config):
self.data_json = data_json
self.provider_list = provider_list
self.trainer = trainer
self.queue_list = queue_list
self.queue_out_list = queue_out_list