360TechEnv commited on
Commit
4cc5cfe
·
verified ·
1 Parent(s): 778fd4f

Upload 3 files

Browse files

fix models import error

Files changed (2) hide show
  1. app.py +33 -7
  2. requirements.txt +2 -2
app.py CHANGED
@@ -85,8 +85,12 @@ class WasteClassifierUI:
85
  return False
86
 
87
  def load_models(self):
88
- """Charge les modèles v1 et v2."""
89
  try:
 
 
 
 
90
  # Télécharger le modèle v1 si nécessaire
91
  if not self.model_v1_path.exists():
92
  st.info("Téléchargement du modèle v1...")
@@ -95,10 +99,21 @@ class WasteClassifierUI:
95
  else:
96
  st.success("Modèle v1 téléchargé avec succès!")
97
 
98
- # Charger le modèle v1
99
  if self.model_v1_path.exists():
100
- self.model_v1 = load_model(self.model_v1_path)
101
- logger.info("Modèle v1 chargé avec succès")
 
 
 
 
 
 
 
 
 
 
 
102
  else:
103
  logger.warning("Modèle v1 non disponible")
104
 
@@ -110,10 +125,21 @@ class WasteClassifierUI:
110
  else:
111
  st.success("Modèle v2 téléchargé avec succès!")
112
 
113
- # Charger le modèle v2
114
  if self.model_v2_path.exists():
115
- self.model_v2 = load_model(self.model_v2_path)
116
- logger.info("Modèle v2 chargé avec succès")
 
 
 
 
 
 
 
 
 
 
 
117
  else:
118
  logger.warning("Modèle v2 non disponible")
119
 
 
85
  return False
86
 
87
  def load_models(self):
88
+ """Charge les modèles v1 et v2 avec gestion de compatibilité."""
89
  try:
90
+ # Configuration pour la compatibilité des modèles
91
+ import tensorflow as tf
92
+ tf.config.run_functions_eagerly(True)
93
+
94
  # Télécharger le modèle v1 si nécessaire
95
  if not self.model_v1_path.exists():
96
  st.info("Téléchargement du modèle v1...")
 
99
  else:
100
  st.success("Modèle v1 téléchargé avec succès!")
101
 
102
+ # Charger le modèle v1 avec gestion d'erreur
103
  if self.model_v1_path.exists():
104
+ try:
105
+ # Essayer de charger avec compile=False pour éviter les problèmes de compatibilité
106
+ self.model_v1 = load_model(self.model_v1_path, compile=False)
107
+ # Recompiler le modèle avec les paramètres par défaut
108
+ self.model_v1.compile(
109
+ optimizer='adam',
110
+ loss='categorical_crossentropy',
111
+ metrics=['accuracy']
112
+ )
113
+ logger.info("Modèle v1 chargé avec succès")
114
+ except Exception as e:
115
+ logger.error(f"Erreur lors du chargement du modèle v1: {e}")
116
+ st.error(f"Erreur lors du chargement du modèle v1: {e}")
117
  else:
118
  logger.warning("Modèle v1 non disponible")
119
 
 
125
  else:
126
  st.success("Modèle v2 téléchargé avec succès!")
127
 
128
+ # Charger le modèle v2 avec gestion d'erreur
129
  if self.model_v2_path.exists():
130
+ try:
131
+ # Essayer de charger avec compile=False pour éviter les problèmes de compatibilité
132
+ self.model_v2 = load_model(self.model_v2_path, compile=False)
133
+ # Recompiler le modèle avec les paramètres par défaut
134
+ self.model_v2.compile(
135
+ optimizer='adam',
136
+ loss='categorical_crossentropy',
137
+ metrics=['accuracy']
138
+ )
139
+ logger.info("Modèle v2 chargé avec succès")
140
+ except Exception as e:
141
+ logger.error(f"Erreur lors du chargement du modèle v2: {e}")
142
+ st.error(f"Erreur lors du chargement du modèle v2: {e}")
143
  else:
144
  logger.warning("Modèle v2 non disponible")
145
 
requirements.txt CHANGED
@@ -2,8 +2,8 @@
2
  # Compatible avec Hugging Face Spaces et déploiement local
3
 
4
  # Deep Learning
5
- tensorflow>=2.16.0,<2.17.0
6
- keras>=3.0.0,<3.1.0
7
 
8
  # Data Science et Machine Learning
9
  numpy>=1.24.0,<1.27.0
 
2
  # Compatible avec Hugging Face Spaces et déploiement local
3
 
4
  # Deep Learning
5
+ tensorflow==2.13.0
6
+ keras==2.13.1
7
 
8
  # Data Science et Machine Learning
9
  numpy>=1.24.0,<1.27.0