daniel_silva Posted July 7, 2022 at 10:44 AM Report Share #626385 Posted July 7, 2022 at 10:44 AM Olá, Estou com um problema a criar um executável em python. O objetivo é fazer um ficheiro executável que chama o modelo de treino e classifique a imagem com as classes atribuídas. Quando tento executar aparece o seguinte erro: 'Sequential' object has no attribute 'predict_classes' Eu estive a ver na internet e falaram que era problemas de versões do tensorflow. Eu já tentei alterar, mas continua a não funcionar... Alguém me pode ajudar? Em baixo envio o código: import tkinter as tk from tkinter import filedialog from tkinter import * from PIL import ImageTk, Image import numpy #load the trained model to classify sign from keras.models import load_model model = load_model('final_model.h5') classes = { 0:'Airplane', 1:'Automobile', 2:'Bird', 3:'Cat', 4:'Deer', 5:'Dog', 6:'Frog)', 7:'Horse', 8:'Ship', 9:'Truck', } #initialise GUI top=tk.Tk() top.geometry('800x600') top.title('Classificação de Images') top.configure(background='#00BFFF') label=Label(top,background='#00BFFF', font=('arial',15,'bold')) sign_image = Label(top) def classify(file_path): global label_packed image = Image.open(file_path) image = image.resize((30,30)) image = numpy.expand_dims(image, axis=0) image = numpy.array(image) print(image.shape) pred = model.predict_classes([image])[0] sign = classes[pred+1] print(sign) label.configure(foreground='#011638', text=sign) def show_classify_button(file_path): classify_b=Button(top,text="Classificar Imagem",command=lambda: classify(file_path),padx=10,pady=5) classify_b.configure(background='#364156', foreground='white',font=('arial',10,'bold')) classify_b.place(relx=0.79,rely=0.46) def upload_image(): try: file_path=filedialog.askopenfilename() uploaded=Image.open(file_path) uploaded.thumbnail(((top.winfo_width()/2.25),(top.winfo_height()/2.25))) im=ImageTk.PhotoImage(uploaded) sign_image.configure(image=im) sign_image.image=im label.configure(text='') show_classify_button(file_path) except: pass upload=Button(top,text="Carregar uma imagem",command=upload_image,padx=10,pady=5) upload.configure(background='#364156', foreground='white',font=('arial',10,'bold')) upload.pack(side=BOTTOM,pady=50) sign_image.pack(side=BOTTOM,expand=True) label.pack(side=BOTTOM,expand=True) heading = Label(top, text="Classificador de Imagens",pady=20, font=('arial',20,'bold')) heading.configure(background='#00BFFF',foreground='#364156') heading.pack() top.mainloop() Obrigado. Link to comment Share on other sites More sharing options...
Solution M6 Posted July 8, 2022 at 09:17 AM Solution Report Share #626398 Posted July 8, 2022 at 09:17 AM Sinceramente duvido que o teu problema esteja nesse código. Creio que deve estar no empacotamento das bibliotecas para criar o executável. Depende do que estejas a usar para fazer o .exe, mas tipicamente as soluções o que fazem é um wrap-up de tudo o que é necessário para correr e enfiar tudo num ficheiro, tipo "a file system in a file". Não sei se estás a usar o PyInstaller ou outra coisa, mas creio que o que está em causa pelo que descreves, serão as bibliotecas que são empacotadas que não serão as indicadas. Tens de garantir que as bibliotecas que são empacotadas são as corretas. No caso do PyInstaller, há uma explicação de como isso é feito: https://pyinstaller.org/en/stable/operating-mode.html#analysis-finding-the-files-your-program-needs Dito tudo isto, tens de ver se no caso do TensorFlow isto é possível usando apenas um empacotador de Python, uma vez que o TensorFlow não é uma biblioteca de Python, mas sim um sistema terceiro para o existe uma biblioteca Python para interagir com o TensorFlow. É isso que é o Keras - do próprio site: "Keras runs on top of open source machine libraries like TensorFlow, Theano or Cognitive Toolkit (CNTK)." 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now