IABD12 commited on
Commit
3b9167e
verified
1 Parent(s): 496cfad

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +76 -0
README.md ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Modelo CNN para Clasificaci贸n de Perros vs Gatos
2
+
3
+ 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.
4
+
5
+ ---
6
+
7
+ ## Dataset
8
+
9
+ - **Nombre**: Cats vs Dogs Dataset
10
+ - **Origen**: Carpeta local `train/`
11
+ - **Cantidad**: 25,000 im谩genes
12
+ - Etiquetado autom谩tico por nombre de archivo (`cat` o `dog`)
13
+ - **Tama帽o de imagen**: 150x150 p铆xeles
14
+ - **Preprocesamiento**:
15
+ - Reescalado: todos los valores de p铆xel normalizados a `[0, 1]`
16
+ - Divisi贸n en entrenamiento y validaci贸n: `80% / 20%`
17
+
18
+ ---
19
+
20
+ ## Arquitectura del modelo
21
+
22
+ Sequential([
23
+ Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 3)),
24
+ MaxPooling2D(2, 2),
25
+
26
+ Conv2D(64, (3, 3), activation='relu'),
27
+ MaxPooling2D(2, 2),
28
+
29
+ Conv2D(128, (3, 3), activation='relu'),
30
+ MaxPooling2D(2, 2),
31
+
32
+ Flatten(),
33
+ Dense(512, activation='relu'),
34
+ Dropout(0.5),
35
+ Dense(1, activation='sigmoid')
36
+ ])
37
+
38
+ model.compile(optimizer=Adam(), loss='binary_crossentropy', metrics=['accuracy'])
39
+
40
+ model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_val, y_val))
41
+
42
+ ---
43
+
44
+ ## Como usar
45
+
46
+ from tensorflow.keras.models import load_model
47
+ from tensorflow.keras.preprocessing import image
48
+ import numpy as np
49
+
50
+ model = load_model("dogs_vs_cats_cnn.h5")
51
+
52
+ def predict_image(img_path):
53
+ img = image.load_img(img_path, target_size=(150, 150))
54
+ img_array = image.img_to_array(img) / 255.0
55
+ img_array = np.expand_dims(img_array, axis=0)
56
+
57
+ prediction = model.predict(img_array)[0][0]
58
+ return "Perro 馃惗" if prediction > 0.5 else "Gato 馃惐"
59
+
60
+ ---
61
+
62
+ ## Guardado del modelo
63
+
64
+ model.save("dogs_vs_cats_cnn.h5")
65
+
66
+ ---
67
+
68
+ ## Requisitos
69
+
70
+ - Python >= 3.8
71
+ - TensorFlow >= 2.9
72
+ - NumPy
73
+ - scikit-learn
74
+
75
+ ---
76
+