Développé une application de machine learning ou de deep learning à l'aide de Streamlit et vous ne savez pas comment l'implémenter sur Heroku? Ne t'inquiète pas, je couvre son dos. Dans cet article, Je vais discuter de la façon de mettre en œuvre votre application ML / DL Streamlit en Heroku. Alors commençons!
Noter: Cet article considère que le lecteur a déjà développé une application optimisée et nous utiliserons une application de démonstration dans cet article.
Table des matières
- Créer une application de démonstration
- Logiciel requis
- Implémentation dans Heroku
- Remarques finales
Créer une application de démonstration
Créons une application de démonstration. Nous utiliserons un simple et célèbre Prévision du prix de l'immobilier Application. Vous pouvez télécharger les ensembles de données à partir de ici. Ci-dessous le code.
importer des pandas au format pd importer numpy en tant que np importer simplifié en tant que st heure d'importation de sklearn.preprocessing importer StandardScaler à partir de sklearn.linear_model importer LinearRegression de sklearn.model_selection importer train_test_split def principal(): df = load_data() df = preprocess_data(df) st.titre(« Prévision du prix de la maison pour la Silicon Valley en Inde - Bangalore') st.markdown('Entrez simplement les informations suivantes et nous prédisons le prix de votre **Maison de Rêve**') st.sidebar.title('Contact du développeur') st.sidebar.markdown('[![Dur-Dhamecha]' '(https://img.shields.io/badge/Author-Harsh Dhamecha-brightgreen)]' '(https://www.linkedin.com/in/harsh-dhamecha/)') avertissement(« N'entrez que des valeurs numériques dans les champs suivants ») bhk = st.text_input("BHK totaux") zone = st.text_input("Superficie en pieds carrés") bains = st.text_input("Salles de bains totales") balcon = st.selectbox("Total Balcon", ['0', '1', '2', '3']) soumettre = st.bouton(« Prédire le prix ») si soumettre: si bhk et zone et bains et balcon: avec st.spinner(« Prédire... »): le sommeil de temps(2) bhk, Région, thermes, balcon = int(bhk), entier(Région), entier(thermes), entier(balcon) x_test = np.array([[bhk, Région, thermes, balcon]]) prédiction = prédire(df, x_test) st.info(F"Votre **Maison de Rêve** Prix est {prédiction} lacs") autre: st.erreur(« Veuillez entrer tous les détails ») @st.cache def train_model(df): échelle mondiale X, y = df.iloc[:, :-1].valeurs, df.iloc[:, -1].valeurs scaler = StandardScaler().ajuster(X) X = scaler.transform(X) X_train, X_test, y_train, y_test = train_test_split(X, Oui, taille_test=0.2, état_aléatoire=23) modèle = Régression Linéaire().ajuster(X_train, y_train) modèle de retour, écailleur def prédire(df, x_test): maquette, scaler = train_model(df) X_test = scaler.transform(x_test) y_pred = model.predict(X_test) retour en rond(y_pred[0], 2) def load_data(): retourner pd.read_csv('Datasets/house-price-prediction.csv') def preprocess_data(df): df = df.loc[:, ['Taille', 'total_sqft', 'bain', 'balcon', 'le prix']] df.dropna(inplace=Vrai) df = df[df['Taille'].str.contient('BHK', na = Faux)] df['Taille'] = df['Taille'].str.remplacer(r'D', '').astype(entier) df['total_sqft'] = df['total_sqft'].extrait.str(r'(d+)', expand=Faux) df['bain'] = df['bain'].astype(entier) df['balcon'] = df['balcon'].astype(entier) df['total_sqft'] = df['total_sqft'].astype(entier) retour df if __name__ == '__main__': principale()
Vous pouvez exécuter votre application rationalisée localement à l'aide de la commande suivante.
exécution simplifiée app.py
Noter: app.py est le fichier que nous voulons exécuter.
Notre application ressemble à ce qui suit.
Avant d'entrer les détails:
Après avoir entré les détails:
Logiciel requis
Pour mettre en œuvre notre application optimisée, nous avons besoin du logiciel suivant:
- Git Télécharger à partir d'ici
- CLI Heroku Télécharger à partir d'ici
- Compte Heroku gratuit créer ici
et suivez les instructions à l'écran.
Implémentation dans Heroku
Maintenant que nous avons notre application de démonstration et le logiciel nécessaire entre nos mains, implémentons notre application sur Heroku.
Fichiers requis
Premier, nous devons ajouter des fichiers qui permettent à Heroku d'installer toutes les bibliothèques requises et d'exécuter notre application.
requisito.txt
Ce fichier contient toutes les bibliothèques nécessaires qui seront installées pour que le projet fonctionne. Ce fichier peut être créé manuellement en examinant le projet et en répertoriant toutes les bibliothèques qui ont été utilisées dans le projet. Mais nous utiliserons les pipreqs module pour faire ça, qui crée automatiquement un fichier requirements.txt. Installez-le avec la commande suivante si vous ne l'avez pas déjà fait.
pip installer pipreqs
À présent, accédez à votre répertoire de projet et tapez la commande suivante.
pipreqs ./
Notre fichier requirements.txt est prêt !! Cela devrait ressembler à ce qui suit.
Procfile et setup.sh
Utilisation de ces deux fichiers, nous indiquons à Heroku les commandes nécessaires pour démarrer notre application.
Dans le fichier setup.sh, nous allons créer un dossier simplifié avec credentials.toml et un fichier config.toml. Ci-dessous la commande qui sera collée dans le fichier setup.sh.
mkdir -p ~/.streamlit/ écho " [général]m e-mail = "[email protégé]"m " > ~/.streamlit/credentials.toml écho " [serveur]m sans tête = vrai enableCORS=falsen port = $PORTn " > ~/.streamlit/config.toml
Le Procfile est utilisé pour exécuter d'abord setup.sh, puis appeler course illuminée pour exécuter l'application. Votre profil devrait ressembler à ce qui suit.
la toile: sh configuration.sh && exécution simplifiée app.py
Noter: app.py est le fichier que nous voulons exécuter en premier (contient la fonction principale). Si vous avez défini votre fonction principale dans un autre fichier, passez-le à la place de app.py.
Créer un dépôt Git
Heroku propose différents modes de mise en œuvre, mais nous utiliserons git car c'est simple.
Tapez la commande suivante pour initialiser un référentiel git vide. Assurez-vous que vous êtes dans le répertoire racine de votre projet.
git init
Connectez-vous à Heroku
Ensuite, nous devons nous connecter à Heroku. Nous pouvons le faire avec la commande suivante.
connexion heroku
Vous serez invité à appuyer sur un bouton et, une fois que je l'ai fait, vous serez redirigé vers un écran de connexion dans votre navigateur par défaut.
Après avoir saisi vos identifiants, vous devriez voir quelque chose comme ce qui suit.
Déployer l'application
Finalement, nous pouvons implémenter notre application dans Heroku. Créons d'abord une instance de notre application. Nous pouvons le faire avec la commande suivante.
heroku créer des maisons-prix-prédicteur
prédicteur du prix d'une maison est un nom que j'ai choisi pour ma candidature. Vous ne pouvez pas utiliser le même nom que j'ai déjà pris. Alors choisissez le nom de votre application en conséquence.
Finalement, envoyer le code à cette instance avec les commandes suivantes.
git ajouter . git commit -m "un message" git push maître heroku
Lors de l'exécution de git push Heroku master, Vous devriez remarquer qu'il devrait détecter automatiquement que vous avez une application Python et qu'il devrait installer tous les packages dans requirements.txt. Une fois la commande terminée, vous devriez voir quelque chose comme ce qui suit.
Noter: Comment j'ai choisi le nom prédicteur du prix d'une maison, j'ai cette url. Vous obtiendrez une URL en fonction du nom de votre application.
Cliquez sur l'URL pour voir votre application déployée en direct.
Toutes nos félicitations! Ont J'ai déployé avec succès notre première application.
Conseils bonus
Si vous voulez changer / modifier les fichiers après le déploiement, vous pouvez le faire dans vos fichiers et exécuter les commandes suivantes pour que ces modifications soient reflétées dans votre application déployée en direct.
git ajouter . git commit -m "un message" git push maître heroku
Vous obtiendrez à nouveau la même URL que celle indiquée dans l'image ci-dessus, cliquez dessus et le tour est joué!
Remarques finales
Ceci termine la discussion d'aujourd'hui.
Merci d'avoir lu ceci!
J'espère que vous avez apprécié l'article et que vous avez implémenté avec succès votre première application Streamlit sur Heroku !!
Cliquez ici pour voir notre première application illuminée en direct. N'hésitez pas à mettre votre premier lien d'application en direct dans la section commentaire ci-dessous.
Ai-je manqué quelque chose d'important ou est-ce que je voulais partager vos pensées? Commentez ci-dessous et je vous répondrai.
A propos de l'auteur
Je suis dur Dhamecha, un chercheur de données en herbe. Je suis étudiante en dernière année de licence Informatique avec une spécialisation en Intelligence Artificielle. Un étudiant motivé et désireux d'aider autant que possible la communauté de la science des données.
Si vous avez une requête, peut directement E-mail moi ou connectez-vous avec moi sur LinkedIn O Twitter.
Si tu aimes ma façon d'écrire, vous pouvez également rechercher les autres articles que j'ai écrits.
Continuer à lire! Un merci spécial à vous ??
Les supports présentés dans cet article expliquant comment implémenter l'application Streamlit sur Heroku ne sont pas la propriété de DataPeaker et sont utilisés à la discrétion de l'auteur.