Instructions to use 360TechEnv/waste-classifier with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Keras
How to use 360TechEnv/waste-classifier with Keras:
# Available backend options are: "jax", "torch", "tensorflow". import os os.environ["KERAS_BACKEND"] = "jax" import keras model = keras.saving.load_model("hf://360TechEnv/waste-classifier") - Notebooks
- Google Colab
- Kaggle
| # Script de build et lancement Docker pour l'interface de classification de déchets | |
| # Usage: ./run_docker.sh [build|start|stop|restart|logs|clean] | |
| set -e # Arrêter en cas d'erreur | |
| # Configuration | |
| CONTAINER_NAME="waste-classifier-app" | |
| IMAGE_NAME="waste-classifier" | |
| PORT=8501 | |
| # Couleurs pour les messages | |
| RED='\033[0;31m' | |
| GREEN='\033[0;32m' | |
| YELLOW='\033[1;33m' | |
| BLUE='\033[0;34m' | |
| NC='\033[0m' # No Color | |
| # Fonctions utilitaires | |
| log_info() { | |
| echo -e "${BLUE}ℹ️ $1${NC}" | |
| } | |
| log_success() { | |
| echo -e "${GREEN}✅ $1${NC}" | |
| } | |
| log_warning() { | |
| echo -e "${YELLOW}⚠️ $1${NC}" | |
| } | |
| log_error() { | |
| echo -e "${RED}❌ $1${NC}" | |
| } | |
| # Vérifier que Docker est installé | |
| check_docker() { | |
| if ! command -v docker &> /dev/null; then | |
| log_error "Docker n'est pas installé. Veuillez l'installer d'abord." | |
| exit 1 | |
| fi | |
| if ! command -v docker-compose &> /dev/null; then | |
| log_error "Docker Compose n'est pas installé. Veuillez l'installer d'abord." | |
| exit 1 | |
| fi | |
| } | |
| # Build de l'image Docker | |
| build_image() { | |
| log_info "Construction de l'image Docker..." | |
| # Vérifier que les fichiers nécessaires existent | |
| if [ ! -f "app.py" ]; then | |
| log_error "Fichier app.py non trouvé" | |
| exit 1 | |
| fi | |
| if [ ! -f "requirements.txt" ]; then | |
| log_error "Fichier requirements.txt non trouvé" | |
| exit 1 | |
| fi | |
| # Build avec docker-compose | |
| docker-compose build --no-cache | |
| log_success "Image Docker construite avec succès" | |
| } | |
| # Démarrer le conteneur | |
| start_container() { | |
| log_info "Démarrage du conteneur..." | |
| # Vérifier si le conteneur est déjà en cours d'exécution | |
| if docker ps -q -f name=$CONTAINER_NAME | grep -q .; then | |
| log_warning "Le conteneur est déjà en cours d'exécution" | |
| return 0 | |
| fi | |
| # Démarrer avec docker-compose | |
| docker-compose up -d | |
| # Attendre que le conteneur soit prêt | |
| log_info "Attente du démarrage du conteneur..." | |
| sleep 10 | |
| # Vérifier la santé du conteneur | |
| if docker ps -q -f name=$CONTAINER_NAME | grep -q .; then | |
| log_success "Conteneur démarré avec succès" | |
| log_info "Interface disponible sur: http://localhost:$PORT" | |
| else | |
| log_error "Échec du démarrage du conteneur" | |
| exit 1 | |
| fi | |
| } | |
| # Arrêter le conteneur | |
| stop_container() { | |
| log_info "Arrêt du conteneur..." | |
| docker-compose down | |
| log_success "Conteneur arrêté" | |
| } | |
| # Redémarrer le conteneur | |
| restart_container() { | |
| log_info "Redémarrage du conteneur..." | |
| stop_container | |
| start_container | |
| } | |
| # Afficher les logs | |
| show_logs() { | |
| log_info "Affichage des logs..." | |
| docker-compose logs -f | |
| } | |
| # Nettoyer les ressources Docker | |
| clean_docker() { | |
| log_info "Nettoyage des ressources Docker..." | |
| # Arrêter et supprimer le conteneur | |
| docker-compose down | |
| # Supprimer l'image | |
| if docker images -q $IMAGE_NAME | grep -q .; then | |
| docker rmi $IMAGE_NAME | |
| log_success "Image supprimée" | |
| fi | |
| # Nettoyer les volumes non utilisés | |
| docker volume prune -f | |
| # Nettoyer les images non utilisées | |
| docker image prune -f | |
| log_success "Nettoyage terminé" | |
| } | |
| # Afficher l'aide | |
| show_help() { | |
| echo "Usage: $0 [COMMAND]" | |
| echo "" | |
| echo "Commands:" | |
| echo " build Construire l'image Docker" | |
| echo " start Démarrer le conteneur" | |
| echo " stop Arrêter le conteneur" | |
| echo " restart Redémarrer le conteneur" | |
| echo " logs Afficher les logs" | |
| echo " clean Nettoyer les ressources Docker" | |
| echo " status Afficher le statut du conteneur" | |
| echo " help Afficher cette aide" | |
| echo "" | |
| echo "Exemples:" | |
| echo " $0 build && $0 start # Construire et démarrer" | |
| echo " $0 logs # Voir les logs en temps réel" | |
| echo " $0 clean # Nettoyer tout" | |
| } | |
| # Afficher le statut | |
| show_status() { | |
| log_info "Statut du conteneur:" | |
| docker ps -f name=$CONTAINER_NAME --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | |
| if docker ps -q -f name=$CONTAINER_NAME | grep -q .; then | |
| log_success "Conteneur en cours d'exécution" | |
| log_info "Interface: http://localhost:$PORT" | |
| else | |
| log_warning "Conteneur arrêté" | |
| fi | |
| } | |
| # Fonction principale | |
| main() { | |
| # Vérifier Docker | |
| check_docker | |
| # Traiter la commande | |
| case "${1:-help}" in | |
| build) | |
| build_image | |
| ;; | |
| start) | |
| start_container | |
| ;; | |
| stop) | |
| stop_container | |
| ;; | |
| restart) | |
| restart_container | |
| ;; | |
| logs) | |
| show_logs | |
| ;; | |
| clean) | |
| clean_docker | |
| ;; | |
| status) | |
| show_status | |
| ;; | |
| help|--help|-h) | |
| show_help | |
| ;; | |
| *) | |
| log_error "Commande inconnue: $1" | |
| show_help | |
| exit 1 | |
| ;; | |
| esac | |
| } | |
| # Exécuter la fonction principale | |
| main "$@" | |