YAML Metadata Warning: empty or missing yaml metadata in repo card
Check out the documentation for more information.
Modelo CNN para Clasificaci贸n de Perros vs Gatos
Este modelo de red neuronal convolucional (CNN) ha sido entrenado para clasificar im谩genes de perros y gatos. Se trata de una tarea de clasificaci贸n binaria donde la salida es 0 (gato) o 1 (perro). Fue construido utilizando TensorFlow y Keras, entrenado desde cero con un dataset personalizado.
Dataset
- Nombre: Cats vs Dogs Dataset
- Origen: Carpeta local
train/ - Cantidad: 25,000 im谩genes
- Etiquetado autom谩tico por nombre de archivo (
catodog)
- Etiquetado autom谩tico por nombre de archivo (
- Tama帽o de imagen: 150x150 p铆xeles
- Preprocesamiento:
- Reescalado: todos los valores de p铆xel normalizados a
[0, 1] - Divisi贸n en entrenamiento y validaci贸n:
80% / 20%
- Reescalado: todos los valores de p铆xel normalizados a
Arquitectura del modelo
Sequential([ Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 3)), MaxPooling2D(2, 2),
Conv2D(64, (3, 3), activation='relu'),
MaxPooling2D(2, 2),
Conv2D(128, (3, 3), activation='relu'),
MaxPooling2D(2, 2),
Flatten(),
Dense(512, activation='relu'),
Dropout(0.5),
Dense(1, activation='sigmoid')
])
model.compile(optimizer=Adam(), loss='binary_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_val, y_val))
Como usar
from tensorflow.keras.models import load_model from tensorflow.keras.preprocessing import image import numpy as np
model = load_model("dogs_vs_cats_cnn.h5")
def predict_image(img_path): img = image.load_img(img_path, target_size=(150, 150)) img_array = image.img_to_array(img) / 255.0 img_array = np.expand_dims(img_array, axis=0)
prediction = model.predict(img_array)[0][0]
return "Perro 馃惗" if prediction > 0.5 else "Gato 馃惐"
Guardado del modelo
model.save("dogs_vs_cats_cnn.h5")
Requisitos
- Python >= 3.8
- TensorFlow >= 2.9
- NumPy
- scikit-learn