示例#1
0
 def metric_auc(self, soft, target):
     print("AUC: {}".format(roc_auc_score(target, soft, average = 'micro')))
     fpr, tpr, thres = roc_curve(target, soft)
     plt.plot(fpr, tpr)
     plt.xlim([0.0,1.0])
     plt.ylim([0.0,1.0])
     plt.title('ROC Curve')
     plt.xlabel('False Positive Rate[1 - Specificity]')
     plt.ylabel('True Positive Rate[Sensitivity]')
     plt.grid(True) 
     plt.show()
    if ("ms" in t):
        return float(t.replace("ms", ""))
    print t
    return t


path = "/localdisk/dchenTmp/scheduling/tunableOCLbenchmarks/result"

benches = ["2mm"]
kernels = {"2mm": ["mm2_kernel1", "mm2_kernel2"]}

for name in benches:
    for kernel in kernels[name]:
        times = []
        for file in os.listdir(path):
            if (name in file):
                f = open(path + "/" + file, "r")
                tmp = 0
                cnt = 0
                for line in f:
                    if (kernel in line):
                        cnt += 1
                        tmp += timeToFloat(line.split()[1])
                tmp = tmp / cnt
                times.append(tmp)
        plt.plot(times)

plt.show()

#print file.replace(name + ".exe_result", "").replace(".txt","").split("_")
示例#3
0
def runaniA():
    #Reset dados para repetição
    e8.delete(0, 'end'); e9.delete(0, 'end') ; e10.delete(0, 'end') ;e11.delete(0, 'end') ; e12.delete(0, 'end')  ; e13.delete(0, 'end'); e14.delete(0, 'end'); e15.delete(0, 'end'); txt.delete(1.0,END)  
    l8.config(fg="gray");l9.config(fg="gray"); l10.config(fg="gray"); l11.config(fg="gray"); l12.config(fg="gray"); l13.config(fg="gray"); l14.config(fg="gray"); l15.config(fg="gray")
    k=IntVar(); k.set(0); w=IntVar(); w.set(0) #Contadores de execução única
    j=IntVar(); j.set(0) #Contador de execução final
    
    #Listas de valores para aquisição dos dados
    DadosArray=[] #Dados do sensor 
    T1=[]; T2=[]; T3=[]#Dados separados por sensor e convertidos para float 
    t=[]; _POPt=[]; t1=[]; tmlist=[] #Dados de tempo
    tm=IntVar(); tm_=StringVar(); tPS=IntVar(); tPE=StringVar(); Ts=StringVar(); Tp=StringVar(); Te=StringVar(); Q=StringVar(); pat=StringVar(); par=StringVar(); Vrs=StringVar() ; nteste=StringVar();
    _POPdados1=[]; _POPdados2=[]; _POPdados3=[]; _POPit=[]; _POPmedia1=[] #Dados para gráfico simultâneo
    flag_=[] #Resposta binária: flag (0 para valores de MEDIA abaixo do erro e 1 para valores de MEDIA acima do erro)
    
    #Valores instantâneos de temperatura, tempo, inhomogeneidade e média de inclinação 
    it_=[]; t_1=[]; t_2=[]; T1_1=[]; T1_2=[]; T2_1=[]; T2_2=[]; T3_1=[]; T3_2=[]; 
    T1incli1_=[]; T2incli1_=[]; T3incli1_=[]; media1_=[]
    
    #Parâmetros iniciais
    Erro= float(e5.get()) ; #Erro de temperatura para determinação do tPS:
    Pulsoduracao= float(e1.get()); #Duração do pulso do traçador (s)
    Vre = float(e2.get()); #Volume do reator (total) (m3)
    Vpulso = float(e3.get()); #Volume do traçador (m3)
    DeltaTemp = float(e4.get()); #Diferença de temperatura entre reator e traçador (°C)
    Nsensor = 3; #N° de sensores
    itmin=float(e6.get()) #Mínimo para função de inhomogeneidade
    tm_.set(0);    tm.set(2592000);    tPS.set(2592000);    dalayf=5
    
    #Gráfico
    fig=Figure(figsize=(10,4), dpi=100) #Tamanho e qualidade da figura
    plot=fig.add_subplot(1,1,1) #Figura = Gráfico em subplot do Matlib
    ax2 = plot.twinx() #Eixo secundário ao plot
    line1, = plot.plot(_POPt,_POPdados1, 'k-', label="T1") #Dados no gráfico
    line2, = plot.plot(_POPt,_POPdados2, 'k-', label="T2") 
    line3, = plot.plot(_POPt,_POPdados3, 'k-', label="T3")
    
    #Configurar radiobuttons
    if(v2.get()==0): s2r2.configure(state = DISABLED); s2r3.configure(state = DISABLED)
    if(v2.get()==1): s2r1.configure(state = DISABLED); s2r3.configure(state = DISABLED)
    if(v2.get()==2): s2r1.configure(state = DISABLED); s2r2.configure(state = DISABLED)
    
    #Linha horizontal e eixo secundário
    if(v1.get()==0):
        line4, = ax2.plot(_POPt,_POPit, 'c:', label="i(t)") 
        ax2.set_ylabel('i(t) (.%)', color='k') # Legenda de eixo y
        ax2.plot(_POPt,_POPit, 'c:', label="i(t)") 
        s1r1.configure(state = DISABLED)
    else: 
        line4, = ax2.plot(_POPt,_POPmedia1, 'c:', label="Inclinação") 
        ax2.set_ylabel('Inclinação', color='k') # Legenda de eixo y
        ax2.plot(_POPt,_POPmedia1, 'c:', label="i(t)") 
        s1r2.configure(state = DISABLED)
        
    #Eixos
    plot.set_xlabel('Tempo (s)', color='k') #Legenda de eixo x
    plot.set_ylabel('Temperatura (°C)', color='k') # Legenda de eixo y
    
    #Início da corrida
    l16.config(text='Conectando...')
    ser=serial.Serial(encon_arduino(), 9600) #Local e taxa de atualização
    
    def tmlabel(): #Função que retorna os valores de tempo de mistura na janela dependendo do tipo de teste
        if(j.get()==0 and v2.get()==0): txt.insert(INSERT,'     Tempo de mistura \n  (Teste único)= ' + str(round(float(tm_.get()), 2)) + ' s')
        if(j.get()==0 and v2.get()!=0): txt.insert(INSERT,'     Tempo de mistura \n   (Ensaio 1)= ' + str(round(float(tm_.get()), 2)) + ' s\n')
        if(j.get()==1 and v2.get()==1): txt.insert(INSERT,'\n     Tempo de mistura \n   (Ensaio 2)= ' + str(round(float(tm_.get()), 2)) + ' s \n\n       (Duplicata)\n      Média= ' + str(round((sum(tmlist)/len(tmlist)),2)) + ' s \n\n  Desvio Padrão= ' + str(round(statistics.stdev(tmlist),2)) + ' s')
        if(j.get()==1 and v2.get()!=1): txt.insert(INSERT,'\n     Tempo de mistura \n   (Ensaio 2)= ' + str(round(float(tm_.get()), 2)) + ' s')
        if(j.get()==2 and v2.get()==2): txt.insert(INSERT,'\n\n     Tempo de mistura \n  (Ensaio 3)= ' + str(round(float(tm_.get()), 2)) + ' s \n\n       (Triplicata)\n      Média= ' + str(round((sum(tmlist)/len(tmlist)),2)) + ' s \n\n  Desvio Padrão= ' + str(round(statistics.stdev(tmlist),2)) + ' s')       
        
    if encon_arduino() is not None: 
        ser.reset_input_buffer() #Reset buffer
        now = datetime.datetime.now()
        
        #Criar Pasta com resultados dependendo do
        if(v2.get()==0): caminho="Simples_Tempo_de_mistura_" + str(now.day) + "_" + str(now.month) + "_ " + str(now.year)
        if(v2.get()==1): caminho="Duplicata_Tempo_de_mistura_" + str(now.day) + "_" + str(now.month) + "_ " + str(now.year)
        if(v2.get()==2): caminho="Triplicata_Tempo_de_mistura_" + str(now.day) + "_" + str(now.month) + "_ " + str(now.year) 
        if os.path.exists(os.path.join(e8.get(), caminho)): pass #Pasta pré-existente (não criar pasta)
        else: os.mkdir(os.path.join(e8.get(), caminho)) #Criação da pasta no local(caminho) definido anteriormente dependendo do tipo de teste
        
        #Salvar dados no excel
        def salvar_dados_excel():
            now = datetime.datetime.now() #Aquisição dos valores de horário local
            if(v1.get()==0):
                df = pd.DataFrame(list(zip(t, T1, T2, T3, it_)), columns =['tempo (s)', 'T1 (°C)', 'T2 (°C)', 'T3 (°C)', 'i(t)']) #Definição do dataframe com os resultados 
            else:
                df = pd.DataFrame(list(zip(t, T1, T2, T3, media1_)), columns =['tempo (s)', 'T1 (°C)', 'T2 (°C)', 'T3 (°C)', 'MédiaInc']) #Definição do dataframe com os resultados 
            if(v1.get()==0): nteste.set("Corrida_Agua" + " - " + str(now.hour) + "h_"  + str(now.minute) + "min_" + str(now.second) + "s.xlsx") #Nome do arquivo a ser criado
            else: nteste.set("Corrida_Óleo" + " - " + str(now.hour) + "h_"  + str(now.minute) + "min_" + str(now.second) + "s.xlsx") #Nome do arquivo a ser criado
            path = os.path.join(e16.get(), caminho, nteste.get()) #Caminho do arquivo]
            writer=pd.ExcelWriter(path, engine='xlsxwriter') #Criação do arquivo
            df.to_excel(writer, sheet_name='Corrida_1', startrow=1) #Local na planilha
            #Geração do gráfico com os dados do sensor: Local, estilo e tamanho do gráfico
            workbook  = writer.book
            workbook.set_size(3600, 2400)
            chart = workbook.add_chart({'type': 'scatter', 'subtype': 'smooth_with_markers'})
            chart.add_series({'name': '=Corrida_1!$C$2','categories': '=Corrida_1!$B$3:$B$5000','values': '=Corrida_1!$C$3:$C$5000', 'marker':{'type': 'circle','size': 5}})
            chart.add_series({'name': '=Corrida_1!$D$2','categories': '=Corrida_1!$B$3:$B$5000','values': '=Corrida_1!$D$3:$D$5000', 'marker':{'type': 'circle','size': 5}})
            chart.add_series({'name': '=Corrida_1!$E$2','categories': '=Corrida_1!$B$3:$B$5000','values': '=Corrida_1!$E$3:$E$5000', 'marker':{'type': 'circle','size': 5}})
            chart.add_series({'name': '=Corrida_1!$F$2','categories': '=Corrida_1!$B$3:$B$5000','values': '=Corrida_1!$F$3:$F$5000', 'y2_axis': 1, 'marker': {'type': 'none', 'color': 'black', 'size': 5}, 'line': {'dash_type': 'dash'}})
            chart.set_title({'name': 'Dados de temperatura'})
            chart.set_x_axis({'name': 'Tempo(s)'})
            chart.set_y_axis({'name': 'Temperatura (°C)'})
            chart.set_y2_axis({'name': 'i(t)'})
            chart.set_plotarea({'layout': {'x':0.14,'y':0.26,'width':0.55,'height': 0.6,}})
            chart.set_style(2)
            sheet = writer.sheets['Corrida_1']
            if(v1.get==0): sheet.insert_chart('I2', chart, {'x_offset': 10, 'y_offset': 10}) 
            else: sheet.insert_chart('L2', chart, {'x_offset': 10, 'y_offset': 10}) 
            writer.save() # Salvar planilha
        #Chamar gif
        Imagem2()
        
    #Iniciar contadores de tempo e flag
    start=time.time(); t.append(0); flag_.append(0);
    def Tmistura(i):
        if encon_arduino() is None: #Quando não for encontrado arduino
            #Imagem de Erro
            root.original7 = Image.open('error.PNG') #Nome da imagem - Local da imagem > pasta do arquivo
            resized7 = root.original7.resize((60, 60),Image.ANTIALIAS) #Mudança de escala
            root.image7 = ImageTk.PhotoImage(resized7) 
            root.display7 = Label(root, image = root.image7)
            root.display7.grid(row=2, column=3, rowspan=3, columnspan=13) #Local na janela
            root.display7.configure(background='white')
            #Legenda do Erro
            l30=Label (root, text="ERRO: Sensor \nnão encontrado\n Conecte o sensor", bd=5, relief="flat",
                  font= "Times 11",width=25, height=4, bg='gray9', fg='white')
            l30.grid (row=3, column=3, rowspan=5,columnspan=13)
            l16.config(text='Desconectado')
            ani.event_source.stop() #Parar animação
        else:
            #Garantir que a comunicação está ativa
            if(ser.isOpen() == False): ser.open()
            #Configurar entradas
            l16.config(fg="black"); l16.config(text='Conectado');
            root.protocol("WM_DELETE_WINDOW", disable_event) #Bloquear fechamento da janela
            if(int(t[-1])<tm.get()+dalayf):
                arduinoData=ser.readline().decode('utf8') #Decodificação dos dados do arduino
                end=time.time()
                DadosArray=arduinoData.split(' , ')
                T1.append(float(DadosArray[0])) #Dados de cada sensor separados 
                T2.append(float(DadosArray[1])) #(Objetivo: Salvar lista de temperaturas e 
                T3.append(float(DadosArray[2])) #possibilitar a atualização automática dos valores no gráfico ao vivo)
                t.append(end-start)
                #Mudar legenda 
                l18.config(text='T1='+str(T1[-1])); l19.config(text='T2='+str(T2[-1])); l20.config(text='T3='+str(T3[-1]))
                if(w.get()==0):
                    Ts.set((T1[-1]+T2[-1]+T3[-1])/3);
                    w.set(1)
                if(t[-2]<tPS.get()): #Início do tempo de mistura (Método das diferenças)
                    if(i>=1): #Valores instantâneos de temperatura e tempo 
                        media=(((T1[-2]+T2[-2]+T3[-2])/3))
                        if(v1.get()==0):it_.append(0)
                        else: media1_.append(0)
                        if(abs((T1[-1]-media)>Erro or abs(T2[-1]-media)>Erro or abs(T3[-1]-media)>Erro) 
                           and (T1[-1]>=T1[-2]+Erro or T2[-1]>=T2[-2]+Erro or T3[-1]>=T3[-2]+Erro)): #Flag
                            flag=1
                            flag_.append(flag)
                        else:
                            flag=0
                            flag_.append(flag)
                            
                        #Correção do flag para variação local de temperatura 
                        #Seleção de flag
                        if(T1[-1]>=T1[-2] or T2[-1]>=T2[-2] or T3[-1]>=T3[-2]):
                            if((flag_[-2]==1 and flag_[-1]==0) or (flag_[-2]==0 and flag_[-1]==0) or (flag_[-2]==0 and flag_[-1]==1)):
                                pass
                            else:
                                tPS.set(int(t[-2])) #Tempo de início do pulso tPS (s) 
                                e10.configure(state='normal'); e10.delete(0, 'end'); e10.insert(END, tPS.get()); l10.config(fg="black")
                                if(v1.get()==0): 
                                    tPE.set(tPS.get() + Pulsoduracao) #Tempo de fim do pulso tPE (s)
                                    e11.configure(state='normal'); e11.delete(0, 'end'); e11.insert(END, tPE.get()); l11.config(fg="black")
                                    Tp.set(float(Ts.get()) + DeltaTemp) #Temperatura do traçador (Tp) (°C)
                                    e8.configure(state='normal'); e8.delete(0, 'end'); e8.insert(END, round(float(Ts.get()),2)); l8.config(fg="black")
                                    e9.configure(state='normal'); e9.delete(0, 'end'); e9.insert(END, round(float(Tp.get()),2)); l9.config(fg="black")
                                    Vrs.set(Vre - Vpulso) #Volume do reator antes do pulso (m3)
                                    Q.set(Vpulso / Pulsoduracao) #Vazão do pulso (F) ( m3/s)
                                    e12.configure(state='normal'); e12.delete(0, 'end'); e12.insert(END, round(float(Q.get())*1000,3)); l12.config(fg="black")
                                    pat.set(((999.83952)+(16.945179*float(Tp.get()))-((7.9870401*10**-3)*(float(Tp.get())**2))-((46.170561*10**-6)*(float(Tp.get())**3))+((105.56302*10**-9)*(float(Tp.get())**4))-((280.54253*10**-12)*(float(Tp.get())**5)))/(1+((16.87985*10**-3)*float(Tp.get())))) #Densidade da água (Traçador)
                                    e14.configure(state='normal'); e14.delete(0, 'end'); e14.insert(END, round(float(pat.get()))); l14.config(fg="black")
                                    par.set(((999.83952)+(16.945179*float(Ts.get()))-((7.9870401*10**-3)*(float(Ts.get())**2))-((46.170561*10**-6)*(float(Ts.get())**3))+((105.56302*10**-9)*(float(Ts.get())**4))-((280.54253*10**-12)*(float(Ts.get())**5)))/(1+((16.87985*10**-3)*float(Ts.get())))) #Densidade da água (Reator)
                                    e15.configure(state='normal'); e15.delete(0, 'end');  e15.insert(END, round(float(par.get()))); l15.config(fg="black")
                                    Te.set(((float(pat.get())*Vpulso*float(Tp.get()))+(float(par.get())*float(Vrs.get())*float(Ts.get())))/((float(pat.get())*Vpulso)+(float(par.get())*float(Vrs.get())))) #Temperatura do meio após pulso (Te) (°C) - por balanço de energia
                                    e13.configure(state='normal'); e13.delete(0, 'end'); e13.insert(END, round(float(Te.get()),2)); l13.config(fg="black")
                                else: pass
                        #Atualizar lista de dados do gráfico
                        _POPdados1.append(T1[-2]);_POPdados2.append(T2[-2]);_POPdados3.append(T3[-2]);_POPt.append(t[-2]);
                        t1.append(t[-1]) 
                        if(v1.get()==0):_POPit.append(it_[-1])
                        else: _POPmedia1.append(media1_[-1])
                if(int(t[-2])>=tPS.get()):
                    if(v1.get()==0): #Método (MAYR et al., 1992) descrito para água
                        media=((T1[-2]+T2[-2]+T3[-2])/3)
                        #Valores da Curva de resposta ideal (M(t))
                        if (t[-2]<=float(tPE.get())): M=float(Tp.get())-((float(Tp.get())-float(Ts.get())))/(1+((float(Q.get())/float(Vrs.get()))*t[-2]))**(float(pat.get())/float(par.get()))
                        else:
                            M=float(Te.get())
                        #Cálculo do grau de heterogeneidade (i(t))  
                        st=(1/Nsensor)*abs((T1[-2]-M)+(T2[-2]-M)+(T3[-2]-M))
                        st2=(1/Nsensor)*abs((T1[-1]-M)+(T2[-1]-M)+(T3[-1]-M)) #Comparação entre dois valores (1) e (2) para garantia de flag
                        it=(st/(float(Te.get())-float(Ts.get())))
                        it2=(st2/(float(Te.get())-float(Ts.get()))) #Lista para comparação de i(t)
                        it_.append(it) # Lista dos valores para o gráfico
                        if(it<=itmin and k.get()==0 and it2<it):
                            tm.set(t[-2]) #Valor para linha vertical no gráfico
                            tm_.set((t[-2])-tPS.get()) #Cálculo do tempo de mistura
                            k.set(1) #Contador de execução única
                            print("\nTempo de Mistura =", float(tm_.get()),"s") 
                            tmlist.append(float(tm_.get()))  #Lista para exportação para excel
                            tmlabel() #Legendas dos resultados na janela
                        #Atualizar lista de dados do gráfico
                        _POPdados1.append(T1[-2]);_POPdados2.append(T2[-2]);_POPdados3.append(T3[-2]);_POPt.append(t[-2]);_POPit.append(it_[-1]); #Dados da lsta POP p/ gráfico
                        t1.append(t[-1]) 
                    else:
                        #Lista de valores de tempo utilizados na inclinação
                        t_1=[[t[-5],t[-4],t[-3],t[-2]]] 
                        t_2=[[t[-4],t[-3],t[-2],t[-1]]]
                        #Lista dos valores de temperatura utilizados na inclinação
                        T1_1=[T1[-5],T1[-4],T1[-3],T1[-2]];T2_1=[T2[-5],T2[-4],T2[-3],T2[-2]];T3_1=[T3[-5],T3[-4],T3[-3],T1[-2]] 
                        T1_2=[T1[-4],T1[-3],T1[-2],T1[-1]];T2_2=[T2[-4],T2[-3],T2[-2],T2[-1]];T3_2=[T3[-4],T3[-3],T3[-2],T1[-1]]
                        #Cálculo das inclinações (lineregress[0])
                        incli1_1=linregress(T1_1,t_1);incli2_1=linregress(T2_1,t_1);incli3_1=linregress(T3_1,t_1)
                        incli1_2=linregress(T1_2,t_2);incli2_2=linregress(T2_2,t_2);incli3_2=linregress(T3_2,t_2)
                        T1incli1=(incli1_1[0]);T2incli1=(incli2_1[0]);T3incli1=(incli3_1[0])
                        T1incli2=(incli1_2[0]);T2incli2=(incli2_2[0]);T3incli2=(incli3_2[0])
                        T1incli1_.append(T1incli1); T2incli1_.append(T2incli1); T3incli1_.append(T3incli1)
                        #Cálculo da média das inclinações
                        media1=(abs(T1incli1)+abs(T2incli1)+abs(T3incli1))/3
                        media2=(abs(T1incli2)+abs(T2incli2)+abs(T3incli2))/3
                        #Lista para construção do gráfico
                        media1_.append((abs(T1incli1)+abs(T2incli1)+abs(T3incli1))/3)
                        #Flag de média da inclinação em comparação com o erro indicado por e7.get())
                        if(abs((T1incli1-media1))>float(e7.get()) and abs((T1incli2-media2))>float(e7.get()) 
                           and abs((abs(T2incli1)-media1))>float(e7.get()) and abs((abs(T2incli2)-media2))>float(e7.get())
                           and abs((abs(T3incli1)-media1))>float(e7.get()) and abs((abs(T3incli2)-media2))>float(e7.get())): 
                            flag=0
                            flag_.append(flag)
                        else:
                            flag=1
                            flag_.append(flag)
                            if(k.get()==0):
                                tm.set(t[-2])
                                tm_.set((t[-2])-tPS.get())
                                print("\nTempo de Mistura =", float(tm_.get()),"s") 
                                k.set(1)
                                tmlist.append(float(tm_.get()))
                                tmlabel()    
                        _POPdados1.append(T1[-2]);_POPdados2.append(T2[-2]);_POPdados3.append(T3[-2]);_POPt.append(t[-1]);_POPmedia1.append(media1_[-2]) #Dados da lsta POP p/ gráfico
                        t1.append(t[-1]) 
                if(i>25): 
                    _POPdados1.pop(0);_POPdados2.pop(0);_POPdados3.pop(0);_POPt.pop(0); #Deletar dados p/ gráfico
                    if(v1.get()==0): _POPit.pop(0)
                    else: _POPmedia1.pop(0)
            else: #Fim do teste
                if(j.get()==v2.get()): salvar_dados_excel()
                k.set(0); w.set(0); j.set(j.get()+1); tm_.set(0); tm.set(2592000); tPS.set(2592000)
                if(j.get()>v2.get()):
                    ani.event_source.stop(); Imagem1() #Parar animação
                    ser.close() #Fechar porta serial
                    root.protocol("WM_DELETE_WINDOW", close_program)
                    #Configurar entradas
                    s1r1.configure(state = NORMAL); s1r2.configure(state = NORMAL); s2r1.configure(state = NORMAL); s2r2.configure(state = NORMAL); s2r3.configure(state = NORMAL)
                    l16.config(fg="gray"); l16.config(text='Desconectado')
            if(i>=1):
                media=(((T1[-2]+T2[-2]+T3[-2])/3))
                
                #Plot Gráfico
                #POP de dados e limite de de eixo
                if(int(t[-1])>25):
                    plot.set_xlim(_POPt[0], _POPt[-1]+5)
                else:
                    plot.set_xlim(_POPt[0], 30)
                plot.set_ylim(media-5,media+5)
                #Cores
                if(t[-1]>tm.get()):
                    line1.set_color('blue') 
                    line2.set_color('blue') 
                    line3.set_color('blue') 
                else:
                    if(t[-1]>=tPS.get()):   
                        line1.set_color('green') # Cor da linha
                        line2.set_color('green') # Cor da linha
                        line3.set_color('green') # Cor da linha
                    else:
                        line1.set_color('black') 
                        line2.set_color('black') 
                        line3.set_color('black') 
                line1.set_data(_POPt,_POPdados1) #Dados do gráfico
                line2.set_data(_POPt,_POPdados2) #Dados do gráfico
                line3.set_data(_POPt,_POPdados3) #Dados do gráfico
                plot.axvline(tPS.get(), color='b',linestyle='--') #Linha vertical de início da mistura
                plot.axvline(tm.get(), color='b',linestyle='--') #Linha vertical de fim da mistura
                if(v1.get()==0):
                    ax2.set_ylim(0, (max(_POPit)+(itmin*3)))
                    ax2.hlines(float(e6.get()), 0, 1000, color='r',linestyle=':')
                    line4.set_data(_POPt,_POPit) 
                else:
                    ax2.set_ylim(0, (max(media1_)+float(e7.get())*3))
                    line4.set_data(_POPt,_POPmedia1) 
    plotcanvas = FigureCanvasTkAgg(fig, root) #Gráfico
    plotcanvas.get_tk_widget().grid(column=0, row=0, columnspan=21, rowspan=10)
    ani = animation.FuncAnimation(fig, Tmistura, interval=785) #Animação da função Teste único
    
    #Definir botão de parada do teste
    def parar():
        ani.event_source.stop(); Imagem1() #Parar animação
        ser.close() #Fechar porta serial
        root.protocol("WM_DELETE_WINDOW", close_program)
        #Garantir que não haja perda de dados
        salvar_dados_excel()
        #Configurar entradas
        l16.config(fg="gray", text='Desconectado')
        s1r1.configure(state = NORMAL); s1r2.configure(state = NORMAL); s2r1.configure(state = NORMAL); s2r2.configure(state = NORMAL); s2r3.configure(state = NORMAL)
    #Botão de parada
    btn2 = Button(root, text="Desconectar", command=parar, bg='gray95', fg='black', width=15, height=2, justify=RIGHT, font="bold 8", bd=2)
    btn2.grid(column=16, row=10, rowspan=18, columnspan=4)
示例#4
0
# -*- coding: utf-8 -*-
"""
Created on Mon Feb 19 14:10:05 2018

@author: Konsta Peltoniemi
"""

from sklearn.feature_selection import RFECV
from scipy.io import loadmat
import numpy as np
from matplotlib.pyplot import plot as plt

rfe = RFECV(step=50, verbose=1)
X_train_r = rfe.fit(X_train, y_train)
print(np.shape(rfe.support_))
plt.plot(range(0, 10001, 50), rfe.grid_scores_)
示例#5
0
def plot_roc(res):
    from matplotlib.pyplot import plot as plt
    r1 = res['roc'][0]
    r2 = res['roc'][1]
    plt.plot(r1, r2)
    return
示例#6
0
class1 = Dense(128, activation='relu')(flat1)
output = Dense(4, activation='softmax')(class1)
# define new model
model = Model(inputs=model.inputs, outputs=output)

model.compile(loss=keras.losses.categorical_crossentropy,
              optimizer=keras.optimizers.Adam(),
              metrics=['accuracy'])

checkpoint = ModelCheckpoint('model_{epoch:02d}_{val_accuracy:.4f}.h5', monitor='val_accuracy', verbose=1, save_best_only=True, mode='max')

# Fit the data
history = model.fit(x, y, validation_split = 0.2, epochs = 60, batch_size = 1, callbacks = [checkpoint])

# Plot training & validation accuracy values
plt.plot(history.history['accuracy'])
plt.plot(history.history['val_accuracy'])
plt.title('Model accuracy')
plt.ylabel('Accuracy')
plt.xlabel('Epoch')
plt.legend(['Train', 'Test'], loc='upper left')
plt.show()

# Plot training & validation loss values
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('Model loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend(['Train', 'Test'], loc='upper left')
plt.show()