Keras Arayüz ile İkili Sınıflandırma İşlemi

Projem Keras ile ikili sınıflandırma yani kedi köpek, kalem silgi gibi .Eğitilmiş verimi load ediyorum ve normalde sınıflandırma işlemini yapabiliyorum ama şuan görsel bir arayüzle sınıflandırılıcak veriyi kullanıcının seçmesini istiyorum. Sonucunuda ‘Deneme’ yazdığım label ile kullanıcıya göstermek istiyorum.

import numpy as np
import cv2
from tkinter import filedialog
from tkinter import *
from PIL import ImageTk, Image
from keras import *
from keras.models import Sequential
from keras.layers import Dense, Activation, Conv2D, Dropout, MaxPooling2D, Flatten
model = Sequential()
model.add(Conv2D(50, (3, 3), input_shape=(50, 50, 3), data_format='channels_first'))
model.add(Conv2D(50, 2))
model.add(Conv2D(50, 2))
model.add(Conv2D(50, 2))
model.add(Conv2D(50, 3))
model.add(Conv2D(50, 2))
model.add(Conv2D(50, 2))
model.add(Conv2D(50, 2))
model.add(MaxPooling2D((5, 5), padding='same'))
model.add(Conv2D(50, 2))
model.add(Conv2D(50, 2))
model.add(Conv2D(50, 2))
model.add(MaxPooling2D((3, 3), padding='same'))
model.add(Conv2D(50, 2))
model.add(Flatten())  
model.add(Dense(1000, activation='relu'))  
model.add(Dropout(0, 3))
model.add(Dense(1000, activation='relu'))
model.add(Dense(2))
model.compile(loss='binary_crossentropy', optimizer=optimizers.RMSprop(lr=0.00001), metrics=['accuracy'])
model.load_weights("kerasileuygulama")
root = Tk()
root.geometry("550x300+300+150")
root.resizable(width=True, height=True)
def openfn():
    filename = filedialog.askopenfilename(initialdir="/", title="Dosya Seç",
                                               filetypes=(("png files", "*.png"), ("all files", "*.*")))
    return filename
def open_img():
    x = openfn()
    img = Image.open(x)
    img = img.resize((1, 50, 50, 3), Image.ANTIALIAS)
    img = ImageTk.PhotoImage(img)
    girisverisi1 = np.array([])
    girisverisi1 = np.append(girisverisi1, img)
    print(model.predict(girisverisi1))
    panel = Label(root, image=img)
    panel.image = img
    panel.pack()
btn = Button(root, text='Sınıflandırmak İstediğiniz Görsel', command=open_img).pack()
lbl=Label(root,text='Deneme').pack()

Şuan Aldığım hata ise şu

TypeError: argument 1 must be sequence of length 2, not 4

Merhaba, hangi işletim sistemini kullanıyorsunuz?

şimdi ben kodlarınızın aynılarını pycharm da modülleri yükleyerek çalıştırmak istedim fakat syntax hataları mevcut.

Sorun-1 = Siz bu syntax hatalarını alıyor musunuz?

Sorun-2 = openfn() fonksiyonundan sonra gelen fonksiyonda tanımladığınız değişkeni return etmemişsiniz. O yüzden hemen altında yer alan img = Image.open(x) çalışmayacaktır.

Sorun-3 = 38. satırda yer alan model.load_weights(kerasileuygulama) kodunuz kullandığınız değişken daha önceden tanımlanmamış gözüküyor. Tanımlanmamış bir değişkeni çağırırken hata alıyorum.

Sorun-4 = Python tarafından size gönderilen hata mesajında yer alan argüman hatası, program tarafından 2 uzunlukta olması gereken bir dizine 4 uzunluk göndererek hata aldığını söylüyor. Dizin yapılarınızı kontrol edebilir misiniz? Tahminen model.add(Conv2D()) çok fazla tanımlanmış ve bu ilk argüman programınız da. Bu tanımlamanın ilk yapıldığı satırda 4 farklı değer almış. Program 2 farklı değer alabilir diyor. Onu da kontrol etmenizi tavsiye ederim.

Konuya vermiş olduğum bu cevap çözüm cevabı değildir. Çözüme ulaşabilmek için gerek yolda çözülmesi gereken hataların tespit edilip size bildirmesini konu alan bir cevaptır.

Son olarak tekrar söylemem gerekiyor. çok fazla syntax hatası var. Onlara bi bakmanızı tavsiye ediyorum. Değişik tırnak işaretleri kullanmışsınız. Tam net olarak anlayamamakla birlikte kullandığınız işletim sistemi ile ilgili bir şey var mıdır diye düşündüm.

Beni de haberdar etmeyi unutmayın. İyi günler

1 Beğeni

Sorunu çok uzaklarda aramaya gerek yok, ``` yerine > kullanılmış.


Kodunuzu buraya göre atın lütfen:

@tevhidulvahset, arkadaşın kodlarını şimdi çalıştırmayı deneyin.

Bu hatayı nasıl çözeceğim bilginiz var mı?

pip install tensorflow

denedim, yüklemiyor.

Bir hata mı aldınız? Eğer öyleyse hata ne?

Peki, bu bağlantıdaki sisteminize göre uygun olan whl dosyasını yükleyebiliyor musunuz?
https://www.lfd.uci.edu/~gohlke/pythonlibs/#tensorflow
Bu arada siz yanılmıyorsam Python’ın 3.5 sürümünü kullanıyorsunuz. tensorflow’un Python3.5 için whl dosyası yok.

şimdi bakacağım tekrardan olumlu olumsuz dönüş yaparım

Win10 işletim sistemini kullanıyorum.

1-)Aslında projede herhangi bir syntax hatası mevcut değil. Buraya kopyalama işlemlerini yaparken sıkıntı olmuş olabilir.
2-)Bu konuda haklı olabilirsiniz inceleyeceğim.
3-)Modeli load etme konusunda sıkıntı yok. Buraya direk projeyi atmadığım için sıkıntı yaşamışsınızdır. Mail adresinizi verirseniz projeyi inceleyebilirsiniz.
4-)Eğitim verilerim biraz basit dediğiniz gibi bu konuyuda inceleyeceğim.
Yardımlarınız için çok teşekkür ederim.

Evet haklısınız. Kopyalama konusuna hiç dikkat etmemişim.

Dediğiniz > sıkıntısı kodları kopyalama yaparken sıkıntı olmuştur. Projede herhangi bir syntax hatası yok belirttiğim gibi.

Aslında tekrar incelediğimde Sorun-2 dediğiniz kısımda bir sorun olduğunu düşünmüyorum. openfn() fonksiyonunda return var. img değişkenine x ile aldığım return değerini aktarıyorum.

Kodları çalıştırmayı denerlerse model.load_weights("kerasileuygulama") bu eğitilmiş model onlarda olmadığı için sıkıntı yaşayacaklar. Bu kodları atmamdaki amaç herhangi bir mantık hatası yapılmış mı ? bu sorunun cevabı için attım kodları. İlginiz için teşekkür ederim.

İsterseniz bu eğitilmiş modeli de atın, programınızı çalıştıracak insanlar sıkıntı yaşamasınlar.

Eğitilmiş verimide bu şekilde paylaşıyım.


Eğitilmiş VeriSetim bu şekilde . Projeyle aynı klosörde olursa bir sıkıntı olucağını düşünmüyorum