Bienvenu, visiteur! [ Se connecter

 

Code Python pour un réseau de neurones reconnaissant chien/chat

  • Listed: 21 mars 2024 19 h 49 min
  • Expires: 312 jours, 7 hours

Description

Code Python pour un réseau de neurones reconnaissant chien/chat

Python
# Importer les modules nécessaires
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout

# Définir les dimensions des images
IMG_WIDTH, IMG_HEIGHT = 224, 224

# Charger le dataset
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.cats_vs_dogs.load_data(
    train_dir="path/to/train",
    test_dir="path/to/test",
)

# Préparer les données
x_train = x_train.astype("float32") / 255.0
x_test = x_test.astype("float32") / 255.0

# Définir l'architecture du réseau
model = Sequential([
    Conv2D(32, (3, 3), activation="relu", input_shape=(IMG_WIDTH, IMG_HEIGHT, 3)),
    MaxPooling2D((2, 2)),
    Conv2D(64, (3, 3), activation="relu"),
    MaxPooling2D((2, 2)),
    Flatten(),
    Dense(128, activation="relu"),
    Dropout(0.2),
    Dense(1, activation="sigmoid"),
])

# Compiler le modèle
model.compile(loss="binary_crossentropy", optimizer="adam", metrics=["accuracy"])

# Entraîner le modèle
model.fit(x_train, y_train, epochs=10)

# Évaluer le modèle
model.evaluate(x_test, y_test)

# Sauvegarder le modèle
model.save("model.h5")

# Prédire sur une nouvelle image
new_image = tf.keras.preprocessing.image.load_img(
    "path/to/new/image.jpg", target_size=(IMG_WIDTH, IMG_HEIGHT)
)
new_image = tf.keras.preprocessing.image.img_to_array(new_image)
new_image = new_image.astype("float32") / 255.0

prediction = model.predict(new_image)

if prediction > 0.5:
    print("C'est un chien")
else:
    print("C'est un chat")

Notes:

  • Ce code utilise le dataset cats_vs_dogs de TensorFlow. Vous pouvez utiliser un autre dataset si vous le souhaitez.
  • Vous pouvez modifier l’architecture du réseau en fonction de vos besoins.
  • Vous devez entraîner le modèle avant de pouvoir l’utiliser pour faire des prédictions.
  • Ce code est un exemple simple. Vous pouvez l’améliorer de plusieurs manières, par exemple en utilisant des techniques d’augmentation de données et de régularisation.

Ressources:

Améliorations possibles

  • Augmentation de données: Augmenter la taille du dataset en appliquant des transformations aléatoires aux images, comme la rotation, le redimensionnement et la découpe.
  • Régularisation: Utiliser des techniques de régularisation pour empêcher le modèle de sur-apprendre, comme le dropout et la L2 regularization.
  • Transfer learning: Utiliser un modèle pré-entraîné sur un dataset plus large, comme ImageNet.
  • Fine-tuning: Ajuster les poids d’un modèle pré-entraîné pour l’adapter à votre tâche de reconnaissance chien/chat.

Conclusion

Ce code Python vous donne un point de départ pour créer un réseau de neurones capable de reconnaitre une photo de chien ou de chat. Vous pouvez améliorer le code en utilisant

Listing ID: 51065fc8f0812033

Signaler un problème

Processing your request, Please wait....

Sponsored Links