-
Notifications
You must be signed in to change notification settings - Fork 0
/
prog.py
54 lines (43 loc) · 1.48 KB
/
prog.py
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
import eel
from dl_train_gui.common import Status
# You may inherit this class
class Program:
def __init__(self):
self.status = Status.IDLE
self.abort = False
self.train_params = {}
def hook(self, callbacks):
self.status_callback = callbacks[0]
self.params_callback = callbacks[1]
self.epoch_callback = callbacks[2]
self.epoch_end_callback = callbacks[3]
self.init_vis_callback = callbacks[4]
self.vis_callback = callbacks[5]
self.message_callback = callbacks[6]
def init_train_params(self):
self.params_callback(self.train_params)
def set_train_params(self, param_dict):
for param_id in param_dict:
if param_id in self.train_params:
self.train_params[param_id][1] = param_dict[param_id]
def set_status(self, status):
self.status = status
self.status_callback(status.name, status.value % 2 == 0)
def get_train_param(self, param_id):
return self.train_params[param_id][1]
def init_vis(self):
pass
def train(self):
pass
def do_abort(self):
if self.abort:
self.abort = False
self.set_status(Status.ABORTED)
return True
def start_train(self):
self.set_status(Status.TRAINING)
eel.spawn(self.train)
def abort_train(self):
if self.status is Status.TRAINING:
self.set_status(Status.ABORTING)
self.abort = True