def load_trained_network(self,sample): network_edition = self.parent.network_edition.get() network_name = self.network_version.get() network_root_path = self.root_path network_features = self.features self.network = net.NNClassifier(network_edition,netco.LOAD,network_name,network_root_path,network_features) window_settings = self.parent.model.get().split('_') del window_settings[0] self.network.inference(sample,window_settings)
def callback(): self.controller_path = os.path.join(self.controllers_root_path,self.controller.get()) self.model_path = os.path.join(self.trend_root_path,self.model_trend.get()) networks = [] for file in os.listdir(self.model_path): if os.path.isdir(os.path.join(self.model_path,file)): networks.append(file) self.trend_network['values'] = sorted(networks) self.trend_classifier_path = os.path.join(self.model_path,self.trend_network.get()) self.trend_classifier = net.NNClassifier(netco.TREND,netco.LOAD,self.trend_network.get(),self.model_path,netco.TREND_FEATURES) for cycle in range(netco.CYCLES_OUTPUTS): cycle_path = os.path.join(self.controller_path,netco.CYCLE+"_"+str(cycle)) network_ice = net.NNRegressor(netco.ENGINE,netco.LOAD,netco.NN_ENG+'_1',cycle_path,netco.ENG_FEATURES) network_ice.layers_import(network_ice.version_path+"/network_structure.json") self.networks_ice.append(network_ice) network_emot = net.NNRegressor(netco.MOTOR,netco.LOAD,netco.NN_EMOT+'_1',cycle_path,netco.EMOT_FEATURES) network_emot.layers_import(network_emot.version_path+"/network_structure.json") self.networks_emot.append(network_emot)
def create_network(self): layers = int(self.layers.get()) if self.parent.network_edition.get() == netco.TREND: network_name = netco.NN_TREND features = netco.TREND_FEATURES if self.parent.network_edition.get() == netco.CYCLES: network_name = netco.NN_CYCLES features = netco.CYCLES_FEATURES root_path = os.path.join(os.getcwd(),netco.CLASSIFIERS,self.parent.network_edition.get(),self.parent.model.get()) self.network = net.NNClassifier(self.parent.network_edition.get(),netco.CREATE,network_name,root_path,features) structure_data = [] for i in range(layers): structure_data.append([self.outValues[i].get(),self.inValues[i].get(),self.activationValues[i].get()]) self.structure = np.array(structure_data) self.parent.structure = self.structure if not os.path.exists(self.network.version_path): os.makedirs(self.network.version_path) with open(self.network.version_path+"/info.txt","w") as file: file.write(30*"-"+"\n") file.write("Network Structure Information\n") file.write("Layer Format: [IN,OUT]\n") file.write(30*"#"+"\n") for layer_counter,layer in enumerate(self.structure,start=0): if layer_counter == 0: file.write("First: ["+str(layer_counter)+"]: ") file.write("["+str(layer[0])+", "+str(layer[1])+", "+layer[2]+"]\n") elif layer_counter == len(self.structure)-1: file.write("Last: ["+str(layer_counter)+"]: ") file.write("["+str(layer[0])+", "+str(layer[1])+", "+layer[2]+"]\n") else: file.write("Hidden ["+str(layer_counter)+"]: ") file.write("["+str(layer[0])+", "+str(layer[1])+", "+layer[2]+"]\n") layer_counter+=1 file.write(30*"-"+"\n") b = self.structure.tolist() # nested lists with same data, indices file_path = self.network.version_path+"/network_structure.json" json.dump({"network_structure":b}, codecs.open(file_path, 'w', encoding='utf-8'),indent=4)
def __init__(self,parent): tk.Toplevel.__init__(self) self.parent = parent self.settingsGUI("Training Setup") _label = tk.Label(self,text="Training Parameters",bg=self['bg'],fg = self.parent.parent.theme.bg) _label.grid(row=0,column=0,sticky="nsew") x_list_place_ice=151 self.controllers_root_path = os.path.join(os.getcwd(),netco.CONTROLLERS) controller_l = tk.Label(self,text="Controller:",bg=self['bg'],fg = self.parent.parent.theme.bg) controller_l.place(x=1,y=20) self.controller = ttk.Combobox(self,state="readonly",postcommand = self.callback_control) if not os.path.exists(self.controllers_root_path): self.controller['values'] = list([""]) else: self.controller['values'] = list(os.listdir(self.controllers_root_path)) self.controller.current(0) self.controller.place(x=x_list_place_ice,y=20) self.trend_root_path = os.path.join(os.getcwd(),netco.CLASSIFIERS,netco.TREND) model_trend_l = tk.Label(self,text="Trend Model:",bg=self['bg'],fg = self.parent.parent.theme.bg) model_trend_l.place(x=1,y=40) self.model_trend = ttk.Combobox(self,state="readonly",postcommand = self.callback_trend) if not os.path.exists(self.trend_root_path): self.model_trend['values'] = list([""]) else: self.model_trend['values'] = list(os.listdir(self.trend_root_path)) self.model_trend.current(0) self.model_trend.place(x=x_list_place_ice,y=40) self.controller_path = os.path.join(self.controllers_root_path,self.controller.get()) self.model_path = os.path.join(self.trend_root_path,self.model_trend.get()) networks = [] for file in os.listdir(self.model_path): if os.path.isdir(os.path.join(self.model_path,file)): networks.append(file) trend_network_l = tk.Label(self,text="Trend Network:",bg=self['bg'],fg = self.parent.parent.theme.bg) trend_network_l.place(x=1,y=60) self.trend_network = ttk.Combobox(self,state="readonly") self.trend_network['values'] = sorted(networks) self.trend_network.current(0) self.trend_network.place(x=x_list_place_ice,y=60) self.networks_ice = [] self.networks_emot = [] self.trend_classifier = net.NNClassifier(netco.TREND,netco.LOAD,self.trend_network.get(),self.model_path,netco.TREND_FEATURES) self.trend_classifier_path = os.path.join(self.model_path,self.trend_network.get()) for cycle in range(netco.CYCLES_OUTPUTS): cycle_path = os.path.join(self.controller_path,netco.CYCLE+"_"+str(cycle)) network_ice = net.NNRegressor(netco.ENGINE,netco.LOAD,netco.NN_ENG+'_1',cycle_path,netco.ENG_FEATURES) network_ice.layers_import(network_ice.version_path+"/network_structure.json") self.networks_ice.append(network_ice) network_emot = net.NNRegressor(netco.MOTOR,netco.LOAD,netco.NN_EMOT+'_1',cycle_path,netco.EMOT_FEATURES) network_emot.layers_import(network_emot.version_path+"/network_structure.json") self.networks_emot.append(network_emot) def callback(): self.controller_path = os.path.join(self.controllers_root_path,self.controller.get()) self.model_path = os.path.join(self.trend_root_path,self.model_trend.get()) networks = [] for file in os.listdir(self.model_path): if os.path.isdir(os.path.join(self.model_path,file)): networks.append(file) self.trend_network['values'] = sorted(networks) self.trend_classifier_path = os.path.join(self.model_path,self.trend_network.get()) self.trend_classifier = net.NNClassifier(netco.TREND,netco.LOAD,self.trend_network.get(),self.model_path,netco.TREND_FEATURES) for cycle in range(netco.CYCLES_OUTPUTS): cycle_path = os.path.join(self.controller_path,netco.CYCLE+"_"+str(cycle)) network_ice = net.NNRegressor(netco.ENGINE,netco.LOAD,netco.NN_ENG+'_1',cycle_path,netco.ENG_FEATURES) network_ice.layers_import(network_ice.version_path+"/network_structure.json") self.networks_ice.append(network_ice) network_emot = net.NNRegressor(netco.MOTOR,netco.LOAD,netco.NN_EMOT+'_1',cycle_path,netco.EMOT_FEATURES) network_emot.layers_import(network_emot.version_path+"/network_structure.json") self.networks_emot.append(network_emot) self.controller.bind("<<ComboboxSelected>>", lambda _ : callback()) self.model_trend.bind("<<ComboboxSelected>>", lambda _ : callback()) self.trend_network.bind("<<ComboboxSelected>>", lambda _ : callback()) epochs_l = tk.Label(self,text="Epochs:",bg=self['bg'],fg = self.parent.parent.theme.bg) epochs_l.place(x=1,y=80) epochs = ttk.Combobox(self,state="readonly") epochs['values'] = (1,5,10,20,50,80,100,200,500,1000,2000) epochs.current(0) epochs.place(x=x_list_place_ice,y=80) learning_rate_l = tk.Label(self,text="Learning Rate:",bg=self['bg'],fg = self.parent.parent.theme.bg) learning_rate_l.place(x=1,y=100) learning_rate = ttk.Combobox(self,state="readonly") learning_rate['values'] = (0.0001,0.001,0.01,0.1,1,10) learning_rate.current(0) learning_rate.place(x=x_list_place_ice,y=100) mini_batch_l = tk.Label(self,text="Minibatch Size:",bg=self['bg'],fg = self.parent.parent.theme.bg) mini_batch_l.place(x=1,y=120) mini_batch = ttk.Combobox(self,state="readonly") mini_batch['values'] = (8,16,32,64,128,256) mini_batch.current(2) mini_batch.place(x=x_list_place_ice,y=120) shuffle_l = tk.Label(self,text="Shuffle Data:",bg=self['bg'],fg = self.parent.parent.theme.bg) shuffle_l.place(x=1,y=140) shuffle = ttk.Combobox(self,state="readonly") shuffle['values'] = (True,False) shuffle.current(0) shuffle.place(x=x_list_place_ice,y=140) test_size_l = tk.Label(self,text="Train/Test Split %:",bg=self['bg'],fg = self.parent.parent.theme.bg) test_size_l.place(x=1,y=160) test_size = ttk.Combobox(self,state="readonly") test_size['values'] = (0.3,0.25,0.2,0.15,0.1) test_size.current(0) test_size.place(x=x_list_place_ice,y=160) train_button = tk.Button(self,text="Train",command=lambda:self.training(int(epochs.get()),float(learning_rate.get()),int(mini_batch.get()),shuffle.get(),float(test_size.get()))) train_button['bg'] = self.parent.parent.theme.bg train_button['fg'] = self.parent.parent.theme.fg train_button.place(x=x_list_place_ice,y=180) ''' x_offset = 400 network_l_emot = tk.Label(self,text="Motor Network:",bg=self['bg'],fg = self.parent.parent.theme.bg) network_l_emot.place(x=1+x_offset,y=40) x_list_place_emot = x_list_place_ice + x_offset self.network_version_emot = ttk.Combobox(self,state="readonly") self.network_version_emot['values'] = sorted(networks_emot) self.network_version_emot.current(0) self.network_version_emot.place(x=x_list_place_emot,y=40) self.network_emot = net.Network(netco.MOTOR,netco.LOAD,self.network_version_emot.get(),self.root_path_emot,netco.EMOT_FEATURES) self.network_emot.layers_import(self.network_emot.version_path+"/network_structure.json") def callback_emot(): self.network_emot = net.Network(netco.MOTOR,netco.LOAD,self.network_version_emot.get(),self.root_path_emot,netco.EMOT_FEATURES) self.network_emot.layers_import(self.network_emot.version_path+"/network_structure.json") epochs_l_emot = tk.Label(self,text="Epochs:",bg=self['bg'],fg = self.parent.parent.theme.bg) epochs_l_emot.place(x=1+x_offset,y=60) epochs_emot = ttk.Combobox(self,state="readonly") epochs_emot['values'] = (1,5,10,20,50,80,100,200,500,1000,2000) epochs_emot.current(0) epochs_emot.place(x=x_list_place_emot,y=60) learning_rate_l_emot = tk.Label(self,text="Learning Rate:",bg=self['bg'],fg = self.parent.parent.theme.bg) learning_rate_l_emot.place(x=1+x_offset,y=80) learning_rate_emot = ttk.Combobox(self,state="readonly") learning_rate_emot['values'] = (0.0001,0.001,0.01,0.1,1,10) learning_rate_emot.current(0) learning_rate_emot.place(x=x_list_place_emot,y=80) mini_batch_l_emot = tk.Label(self,text="Minibatch Size:",bg=self['bg'],fg = self.parent.parent.theme.bg) mini_batch_l_emot.place(x=1+x_offset,y=100) mini_batch_emot = ttk.Combobox(self,state="readonly") mini_batch_emot['values'] = (8,16,32,64,128,256) mini_batch_emot.current(2) mini_batch_emot.place(x=x_list_place_emot,y=100) shuffle_l_emot = tk.Label(self,text="Shuffle Data:",bg=self['bg'],fg = self.parent.parent.theme.bg) shuffle_l_emot.place(x=1+x_offset,y=120) shuffle_emot = ttk.Combobox(self,state="readonly") shuffle_emot['values'] = (True,False) shuffle_emot.current(0) shuffle_emot.place(x=x_list_place_emot,y=120) test_size_l_emot = tk.Label(self,text="Train/Test Split %:",bg=self['bg'],fg = self.parent.parent.theme.bg) test_size_l_emot.place(x=1+x_offset,y=140) test_size_emot = ttk.Combobox(self,state="readonly") test_size_emot['values'] = (0.3,0.25,0.2,0.15,0.1) test_size_emot.current(0) test_size_emot.place(x=x_list_place_emot,y=140) train_button_emot = tk.Button(self,text="Train",command=lambda:self.network_emot.train(int(epochs_emot.get()),float(learning_rate_emot.get()),int(mini_batch_emot.get()),shuffle_emot.get(),float(test_size_emot.get()))) train_button_emot['bg'] = self.parent.parent.theme.bg train_button_emot['fg'] = self.parent.parent.theme.fg train_button_emot.place(x=x_list_place_emot,y=180) ''' self.mainloop()
def callback(): self.network = net.NNClassifier(self.parent.network_edition.get(),netco.LOAD,self.network_version.get(),self.root_path,features) self.network.layers_import(self.network.version_path+"/network_structure.json")
def __init__(self,parent): tk.Toplevel.__init__(self) self.parent = parent self.settingsGUI("Training Setup") self.root_path = os.path.join(os.getcwd(),netco.CLASSIFIERS,self.parent.network_edition.get(),self.parent.model.get()) _label = tk.Label(self,text="Training Parameters",bg=self['bg'],fg = self.parent.parent.theme.bg) _label.grid(row=0,column=0,sticky="nsew") network_l = tk.Label(self,text="Network:",bg=self['bg'],fg = self.parent.parent.theme.bg) network_l.place(x=1,y=40) if self.parent.network_edition.get() == netco.CYCLES: features = netco.CYCLES_FEATURES if self.parent.network_edition.get() == netco.TREND: features = netco.TREND_FEATURES networks = [] for file in os.listdir(self.root_path): if os.path.isdir(os.path.join(self.root_path,file)): networks.append(file) x_list_place = 151 self.network_version = ttk.Combobox(self,state="readonly",postcommand = self.callback_network) self.network_version['values'] = sorted(networks) self.network_version.current(0) self.network_version.place(x=x_list_place,y=40) self.network = net.NNClassifier(self.parent.network_edition.get(),netco.LOAD,self.network_version.get(),self.root_path,features) self.network.layers_import(self.network.version_path+"/network_structure.json") def callback(): self.network = net.NNClassifier(self.parent.network_edition.get(),netco.LOAD,self.network_version.get(),self.root_path,features) self.network.layers_import(self.network.version_path+"/network_structure.json") self.network_version.bind("<<ComboboxSelected>>", lambda _ : callback()) epochs_l = tk.Label(self,text="Epochs:",bg=self['bg'],fg = self.parent.parent.theme.bg) epochs_l.place(x=1,y=60) epochs = ttk.Combobox(self,state="readonly") epochs['values'] = (1,10,100,150,200,500,1000,2000) epochs.current(0) epochs.place(x=x_list_place,y=60) learning_rate_l = tk.Label(self,text="Learning Rate:",bg=self['bg'],fg = self.parent.parent.theme.bg) learning_rate_l.place(x=1,y=80) learning_rate = ttk.Combobox(self,state="readonly") learning_rate['values'] = (0.0001,0.001,0.01,0.1,1,10) learning_rate.current(0) learning_rate.place(x=x_list_place,y=80) mini_batch_l = tk.Label(self,text="Minibatch Size:",bg=self['bg'],fg = self.parent.parent.theme.bg) mini_batch_l.place(x=1,y=100) mini_batch = ttk.Combobox(self,state="readonly") mini_batch['values'] = (8,16,32,64,128,256) mini_batch.current(2) mini_batch.place(x=x_list_place,y=100) shuffle_l = tk.Label(self,text="Shuffle Data:",bg=self['bg'],fg = self.parent.parent.theme.bg) shuffle_l.place(x=1,y=120) shuffle = ttk.Combobox(self,state="readonly") shuffle['values'] = (True,False) shuffle.current(0) shuffle.place(x=x_list_place,y=120) test_size_l = tk.Label(self,text="Train/Test Split %:",bg=self['bg'],fg = self.parent.parent.theme.bg) test_size_l.place(x=1,y=140) test_size = ttk.Combobox(self,state="readonly") test_size['values'] = (0.3,0.25,0.2,0.15,0.1) test_size.current(0) test_size.place(x=x_list_place,y=140) train_button = tk.Button(self,text="Train",command=lambda:self.training(int(epochs.get()),float(learning_rate.get()),int(mini_batch.get()),shuffle.get(),float(test_size.get())),height = 2, width = 20) train_button['bg'] = self.parent.parent.theme.bg train_button['fg'] = self.parent.parent.theme.fg train_button.place(x=x_list_place,y=180) self.bind('<Return>', lambda event:self.training(int(epochs.get()),float(learning_rate.get()),int(mini_batch.get()),shuffle.get(),float(test_size.get()))) self.mainloop()