Kedi-Köpek Fotoğrafı Ayrımı Yapay Zeka Modeli

Hacknology

Kıdemli Üye
25 Eki 2015
2,712
11
rm -rf /
Dataset: Tıkla
seperate_data.py
Kod:
import os

def seperate_train_data(path):

    os.makedirs(os.path.join('train', 'cat'))
    os.makedirs(os.path.join('train', 'dog'))
        
    for i in os.listdir(path):
        
        if "cat" in i:
            old_path = path+"\\"+i
            new_path = 'train\cat\\'+i
            os.rename(old_path,new_path)
        if "dog" in i:
            old_path = path+'\\'+i
            new_path = 'train\dog\\'+i
            os.rename(old_path,new_path)

main.py
Kod:
import seperate_data
import sys,os
import matplotlib.pyplot as plt
from matplotlib.image import imread
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Conv2D, MaxPooling2D, Flatten
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.callbacks import Callback
import numpy as np

class myCallback(Callback):
    def on_epoch_end(self, epoch, logs={}):
        if(logs.get('loss')<0.02):
            self.model.stop_training=True
callbacks=myCallback()
seperate_data.seperate_train_data(sys.argv[1])
#dim1=[]
#dim2=[]
#for test_img in os.listdir('train\\'+'cat'):
#    img = imread('train\\cat\\'+test_img)
#    d1,d2,_ = img.shape
#    dim1.append(d1)
#    dim2.append(d2)
#print(np.mean(dim1))
#print(np.mean(dim2))
#Mean image shape is around (356,410,3)
image_shape = (356,410,3)

img_gen = ImageDataGenerator(rescale=1/255)

model = Sequential()
model.add(Conv2D(32, (3,3), input_shape=image_shape, activation='relu'))
model.add(MaxPooling2D(2,2))
model.add(Conv2D(64, (3,3), activation='relu'))
model.add(MaxPooling2D(2,2))
model.add(Conv2D(64, (3,3), activation='relu'))
model.add(MaxPooling2D(2,2))
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

train_generator = img_gen.flow_from_directory('train', target_size=(356,410), batch_size=16,color_mode='rgb', class_mode='binary')
r = model.fit_generator(
    train_generator,
    epochs=15,
    callbacks=[callbacks]
    
)

plt.plot(r.history['accuracy'])
plt.show()
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.