コード例 #1
0
 def get_skl_estimator(self, **default_parameters):
     return elm.ELM(hid_num=10)  # (**default_parameters)
コード例 #2
0
            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_()
コード例 #3
0
            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_()
コード例 #4
0
ファイル: ventana_elm.py プロジェクト: jorgerodriguezsj/ANNT
    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()