Ajouter app.py
This commit is contained in:
commit
7671e45077
45
app.py
Normal file
45
app.py
Normal file
@ -0,0 +1,45 @@
|
||||
import os
|
||||
import numpy as np
|
||||
from PIL import Image
|
||||
|
||||
# Étape 1 : Télécharger des données
|
||||
data_dir = 'donnees'
|
||||
emotion_classes = ['happy', 'sad', 'angry']
|
||||
num_images_per_class = 100
|
||||
|
||||
for emotion in emotion_classes:
|
||||
for i in range(num_images_per_class):
|
||||
filename = f'{emotion}_{i}.jpg'
|
||||
image_path = os.path.join(data_dir, emotion, filename)
|
||||
img = Image.open(image_path)
|
||||
img_array = np.array(img)
|
||||
# Prétraitement des données
|
||||
img_array = img_array / 255.0
|
||||
# Stocker les images prêtes à être utilisées par le modèle
|
||||
img_array = np.reshape(img_array, (1, 224, 224, 3))
|
||||
# Étape 2 : Prétraitement des données
|
||||
img_array = np.concatenate((img_array, np.zeros((100, 224, 224, 3))))
|
||||
print(f'Données pour {emotion} téléchargées avec succès.')
|
||||
|
||||
# Étape 3 : Formation du modèle
|
||||
from tensorflow.keras.models import Sequential
|
||||
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
|
||||
|
||||
model = Sequential()
|
||||
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(224, 224, 3)))
|
||||
model.add(MaxPooling2D((2, 2)))
|
||||
model.add(Conv2D(64, (3, 3), activation='relu'))
|
||||
model.add(MaxPooling2D((2, 2)))
|
||||
model.add(Conv2D(128, (3, 3), activation='relu'))
|
||||
model.add(MaxPooling2D((2, 2)))
|
||||
model.add(Flatten())
|
||||
model.add(Dense(128, activation='relu'))
|
||||
model.add(Dense(len(emotion_classes), activation='softmax'))
|
||||
|
||||
# Compilation du modèle
|
||||
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
|
||||
|
||||
# Entraînement du modèle
|
||||
from sklearn.model_selection import train_test_split
|
||||
X_train, X_val, y_train, y_val = train_test_split(img_array, np.zeros((num_images_per_class * len(emotion_classes), 3)), test_size=0.2)
|
||||
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_val, y_val))
|
Loading…
Reference in New Issue
Block a user