q Cat Vs Dog
June 26, 2025 0

Cat Vs Dog

By Admin 5 min read

https://drive.google.com/file/d/1Lqmu00lPyV0Dbkf52jgGI0rlYUCa5SXZ/view?usp=sharing

!pip install tensorflow Pillow

 

import tensorflow as tf

from tensorflow.keras.preprocessing.image import ImageDataGenerator

from tensorflow.keras.models import Sequential

from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout

from tensorflow.keras.preprocessing import image

 

 

 

train_datagen = ImageDataGenerator(rescale=1./255, validation_split=0.2)

train_generator = train_datagen.flow_from_directory(

'dogs_vs_cats/train',

target_size=(150, 150),

batch_size=32,

class_mode='binary',

subset='training'

)

val_generator = train_datagen.flow_from_directory(

'dogs_vs_cats/train',

target_size=(150, 150),

batch_size=32,

class_mode='binary',

subset='validation'

)

 

model = Sequential([

Conv2D(32, (3,3), activation='relu', input_shape=(150,150,3)),

MaxPooling2D(2,2),

Conv2D(64, (3,3), activation='relu'),

MaxPooling2D(2,2),

Flatten(),

Dense(128, activation='relu'),

Dropout(0.5),

Dense(1, activation='sigmoid') # Binary classification

])

 

 

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

 

 

model.fit(train_generator, validation_data=val_generator, epochs=10)

 

 

model.save("model/cat_dog_model.h5")

 


from tensorflow.keras.preprocessing import image

import numpy as np

 

img = image.load_img("/Users/bibekdhakal/Downloads/cat2.jpg", target_size=(150, 150))

img_array = image.img_to_array(img) / 255.0

img_array = np.expand_dims(img_array, axis=0)


 

pred = model.predict(img_array)

print("Dog" if pred[0][0] > 0.5 else "Cat")