def get_skl_estimator(self, **default_parameters): return elm.ELM(hid_num=10) # (**default_parameters)
options.simulation_mode = False if pc.mode == 2: options.promode = False options.simulation_mode = True break options.port = str(pc.port) port_speed = pc.selectedportspeed if not options.port: msgbox = gui.QMessageBox() msgbox.setText(_("No COM port selected")) msgbox.exec_() print _("Initilizing ELM with speed %i...") % port_speed options.elm = elm.ELM(options.port, port_speed) if options.elm_failed: pc.show() pc.logview.append(options.get_last_error()) msgbox = gui.QMessageBox() msgbox.setText(_("No ELM327 or OBDLINK-SX detected on COM port ") + options.port) msgbox.exec_() else: nok = False w = Main_widget() options.main_window = w w.show() app.exec_()
options.simulation_mode = False if pc.mode == 2: options.promode = False options.simulation_mode = True break options.port = str(pc.port) port_speed = pc.selectedportspeed if not options.port: msgbox = gui.QMessageBox() msgbox.setText(_("No COM port selected")) msgbox.exec_() print _("Initilizing ELM with speed %i...") % port_speed options.elm = elm.ELM(options.port, port_speed, pc.isels) if options.elm_failed: pc.show() pc.logview.append(options.get_last_error()) msgbox = gui.QMessageBox() msgbox.setText(_("No ELM327 or OBDLINK-SX detected on COM port ") + options.port) msgbox.exec_() else: nok = False w = Main_widget() options.main_window = w w.show() app.exec_()
def entrenar(): #fijamos los valores obtenidos en entry proporcion_datos = proporcion.get() numero_neuronas = neuronas.get() xp = xptemp.get() #Excepciones if numero_neuronas == 0: mb.showerror("Error", "Variable número de neuronas = 0 ") progressbar.destroy() return if proporcion_datos == 0.0: mb.showerror("Error", "Variable proporcion de datos = 0 ") progressbar.destroy() return if proporcion_datos > 1.0: mb.showerror("Error", "Variable proporcion de datos no válida ") progressbar.destroy() return import cupy while True: try: neuronas_ocultas, precision_test, tiempo, Win, Wout, Bias, Y_test1, Y_pred_test = elm.ELM( X_train, X_test, Y_train, Y_test, numero_neuronas, proporcion_datos, xp) break except cupy.cuda.memory.OutOfMemoryError: mb.showerror("Error", "La GPU no tiene memoria suficiente ") progressbar.destroy() return #Título labeltitulo1 = ttk.Label(superframe, text="Resultados ELM", foreground="#054FAA", font=("Arial Bold", 15)) labeltitulo1.grid(row=0, columnspan=2) #---------------Imprimir los resultados en pantalla----------------------- resultadoneuronas = ttk.Label(superframe, text="Número de Neuronas: ", font=("Arial Bold", 12), foreground="#054FAA") resultadoneuronas.grid(column=0, row=1, sticky=W, pady=5) resultadoneuronas1 = ttk.Label(superframe, font=("Arial Bold", 12), foreground="#054FAA") resultadoneuronas1.grid(column=1, row=1, sticky=W) resultadoprop = ttk.Label(superframe, text="Datos empleados: ", font=("Arial Bold", 12), foreground="#054FAA") resultadoprop.grid(column=0, row=2, sticky=W, pady=5) resultadoprop1 = ttk.Label(superframe, font=("Arial Bold", 12), foreground="#054FAA") resultadoprop1.grid(column=1, row=2, sticky=W) resultadoprec = ttk.Label(superframe, text="Aciertos Test: ", font=("Arial Bold", 12), foreground="#054FAA") resultadoprec.grid(column=0, row=3, sticky=W, pady=5) resultadoprec1 = ttk.Label(superframe, font=("Arial Bold", 12), foreground="#054FAA") resultadoprec1.grid(column=1, row=3, sticky=W) resultadotiempo = ttk.Label(superframe, text="Tiempo entrenamiento: ", font=("Arial Bold", 12), foreground="#054FAA") resultadotiempo.grid(column=0, row=4, sticky=W, pady=5) resultadotiempo1 = ttk.Label(superframe, font=("Arial Bold", 12), foreground="#054FAA") resultadotiempo1.grid(column=1, row=4, sticky=W) #---------------Resultados neuronas------------------------------ resultadoneuronas1['text'] = str(neuronas_ocultas) #---------------Resultados lote------------------------------ resultadoprop1['text'] = str(proporcion_datos * 100) + " " + "%" #---------------Resultados precision------------------------------ resultadoprec1['text'] = '{:.2f}'.format( (precision_test * 100)) + " " + "%" #---------------Resultados tiempo------------------------------ resultadotiempo1['text'] = '{:.3f}'.format((tiempo)) + " " + "s" #Función que nos permite guardar el modelo def guardarelm(): nombrearch = fd.asksaveasfilename(initialdir="/", title="Guardar como") if nombrearch != '': archiWin = open(nombrearch, 'wb') pickle.dump((Win, Wout, Bias), archiWin) archiWin.close() mb.showinfo("Información", "Los datos fueron guardados en el archivo.") """ Los datos del modelo se descargan en formato binario serializado, para su posterior uso hay que cargarlos mediante archivo = open("modelo","rb") Win,Wout,Bias = pickle.load(archivo) """ #Función que saca los detalles del test del modelo por clases def detalles(): class Display(tk.Frame): def __init__(self, parent=0): tk.Frame.__init__(self, parent) self.output = tk.Text(self, width=80, height=15) self.output.pack( padx=30, pady=5, ) sys.stdout = self self.pack() def flush(self): pass def write(self, txt): self.output.insert(tk.END, str(txt)) self.output.see("end") self.update_idletasks() #Creamos el display donde aparecen los datos por clases def pantalla(): ventana_display = tk.Toplevel(ventana_elm) labeltitulo1 = ttk.Label(ventana_display, text="Resultados por clase", foreground="#054FAA", font=("Arial Bold", 15)) labeltitulo1.pack(pady=5) Display(ventana_display) #Llamada a función que nos devuelve info por clases def run(): from sklearn.metrics import classification_report print(classification_report(Y_test1, Y_pred_test)) t1 = Thread(target=pantalla) t2 = Thread(target=run) t1.start() t2.start() #frame que contiene los botones miniframe = tk.Frame(superframe) miniframe.grid(row=5, columnspan=2) #Botón para invocar los detalles btndet = ttk.Button(miniframe, text="Resultados por Clase", style='my.TButton', command=detalles) btndet.grid(row=0, column=1, padx=20, pady=15) #Botón guardar datos btnsave = ttk.Button(miniframe, text="Guardar modelo", command=guardarelm, style='my.TButton') btnsave.grid(pady=15, row=0, column=0) progressbar.destroy()