Implementierung in Heroku | Stellen Sie die ML-Anwendung bereit / DL Streamlit und Heroku

Inhalt

¿Desarrolló una aplicación de aprendizaje automático o tiefes Lernen utilizando Streamlit y no sabe cómo implementarla en Heroku? Mach dir keine Sorgen, Ich bedecke seinen Rücken. In diesem Artikel, Ich bespreche, wie Sie Ihre ML-Anwendung implementieren / DL Streamlit und Heroku. Dann legen wir los!

Notiz: Dieser Artikel geht davon aus, dass der Leser bereits eine optimierte Anwendung entwickelt hat und wir werden in diesem Artikel eine Demo-Anwendung verwenden.

Inhaltsverzeichnis

  1. Erstellen Sie eine Demo-Anwendung
  2. Erforderliche Software
  3. Implementierung in Heroku
  4. Abschließende Anmerkungen

Erstellen Sie eine Demo-Anwendung

Lass uns eine Demo-App erstellen. Wir verwenden ein einfaches und berühmtes Hauspreisvorhersage Anwendung. Sie können die Datensätze herunterladen von hier. Unten ist der Code.

Pandas als pd importieren
numpy als np importieren
streamlit als st . importieren
Importzeit
aus sklearn.preprocessing importieren StandardScaler
aus sklearn.linear_model import LinearRegression
aus sklearn.model_selection import train_test_split
def main():
    df = load_data()
    df = preprocess_data(df)
    st.titel('House Price Prediction for Silicon Valley of India - Bangalore')
    st.abschlag('Geben Sie einfach die folgenden Angaben ein und wir sagen den Preis Ihres **Traumhauses**')
    st.sidebar.title('Entwicklerkontakt')
    st.sidebar.markdown('[![Harsh-Dhamecha]'
                        '(https://img.shields.io/badge/Author-Harsh Dhamecha-brightgreen)]'
                        '(https://www.linkedin.com/in/harsh-dhamecha/)')
    st.warnung('Geben Sie nur numerische Werte in die folgenden Felder ein')
    bhk = st.text_input("Gesamt-BHK")
    Bereich = st.text_input("Fläche in Quadratmetern")
    Bäder = st.text_input("Gesamtbadezimmer")
    balkon = st.selectbox("Gesamt Balkon", ['0', '1', '2', '3'])
    abschicken = st.button('Preisprognosen')
    wenn einreichen: 
        wenn bhk und bereich und bad und balkon:
            mit st.spinner('Vorhersagen...'):
                zeit.schlaf(2)
                bhk, Bereich, Bad, Balkon = int(bhk), int(Bereich), int(Bad), int(Balkon)
                x_test = np.array([[bhk, Bereich, Bad, Balkon]])
                Vorhersage = vorhersagen(df, x_test)
                st.info(F"Ihr **Traumhaus**-Preis ist {Vorhersage} lacs")
        anders:
            st.fehler('Bitte geben Sie alle Details ein')
@st.cache
def train_model(df):
    globaler Skalierer
    x, y = df.iloc[:, :-1].Werte, df.iloc[:, -1].Werte
    Scaler = StandardScaler().fit(x)
    X = scaler.transform(x)
    X_Zug, X_test, y_train, y_test = train_test_split(x, Ja, test_size=0.2, random_state=23)
    Modell = LinearRegression().fit(X_Zug, y_train)
    Rückgabemodell, Scaler
auf jeden Fall vorhersagen(df, x_test):
    Modell, Scaler = train_model(df)
    X_test = scaler.transform(x_test)
    y_pred = model.predict(X_test)
    Rückrunde(y_pred[0], 2)
def load_data():
    pd.read_csv zurückgeben('Datensätze/house-price-prediction.csv')
def preprocess_data(df):
    df = df.loc[:, ['Größe', 'total_sqft', 'Bath', 'Balkon', 'Preis']]
    df.dropna(inplace=Wahr)
    df = df[df['Größe'].str.enthält('BHK', na = Falsch)]
    df['Größe'] = df['Größe'].str.ersetzen(r'D', '').astyp(int)
    df['total_sqft'] = df['total_sqft'].str.auszug(r'(d+)', expand=Falsch)
    df['Bath'] = df['Bath'].astyp(int)
    df['Balkon'] = df['Balkon'].astyp(int)
    df['total_sqft'] = df['total_sqft'].astyp(int)
    return df
if __name__ == '__main__':
    hauptsächlich()

Sie können Ihre streamlit-Anwendung lokal mit dem folgenden Befehl ausführen.

Streamlit-Lauf app.py

Notiz: app.py ist die Datei, die wir ausführen möchten.

Unsere Bewerbung sieht wie folgt aus.

Vor der Eingabe der Daten:

58168app-1-1105647

Nach Eingabe der Daten:

65904app-2-7907168

Erforderliche Software

Um unsere optimierte Anwendung zu implementieren, Wir brauchen folgende Software:

  1. Git Von hier herunterladen
  2. Heroku CLI Von hier herunterladen
  3. Kostenloses Heroku-Konto hier erstellen

und folgen Sie den Anweisungen auf dem Bildschirm.

Implementierung in Heroku

Jetzt haben wir unsere Demo-Anwendung und die notwendige Software in unseren Händen, implementieren wir unsere Anwendung auf Heroku.

Erforderliche Dateien

Zuerst, Wir müssen einige Dateien hinzufügen, die es Heroku ermöglichen, alle erforderlichen Bibliotheken zu installieren und unsere Anwendung auszuführen.

requisito.txt

Diese Datei enthält alle notwendigen Bibliotheken, die installiert werden, damit das Projekt funktioniert. Diese Datei kann manuell erstellt werden, indem Sie das Projekt überprüfen und alle Bibliotheken auflisten, die im Projekt verwendet wurden. Aber wir werden verwenden die pipreqs Modul dazu, wodurch automatisch eine Requirements.txt-Datei erstellt wird. Installieren Sie es mit dem folgenden Befehl, wenn Sie es noch nicht getan haben.

pip installiere pipreqs

Jetzt, Navigieren Sie zu Ihrem Projektverzeichnis und geben Sie den folgenden Befehl ein.

pipreqs ./

Unsere Datei Requirements.txt ist fertig!! Es sollte in etwa wie folgt aussehen.

16279Anforderungen-4918732

Profil und setup.sh

Verwenden dieser beiden Dateien, Wir teilen Heroku die notwendigen Befehle mit, um unsere Anwendung zu starten.

In der Datei setup.sh erstellen wir einen Streamlit-Ordner mit Credentials.toml und einer config.toml-Datei. Unten ist der Befehl, der in die Datei setup.sh eingefügt wird.

mkdir -p ~/.streamlit/
Echo "
[Allgemeines]n
E-Mail = "[E-Mail geschützt]"n
" > ~/.streamlit/credentials.toml
Echo "
[Server]n
kopflos = wahr
enableCORS=falsen
port = $PORTn
" > ~/.streamlit/config.toml

Das Procfile wird verwendet, um zuerst setup.sh auszuführen und dann aufzurufen beleuchtetes Rennen um die Anwendung auszuführen. Ihr Profil sollte ungefähr wie folgt aussehen.

Netz: sh setup.sh && Streamlit-Lauf app.py

Notiz: app.py ist die Datei, die wir zuerst ausführen möchten (enthält die Hauptfunktion). Wenn Sie Ihre Hauptfunktion in einer anderen Datei definiert haben, Übergeben Sie es anstelle von app.py.

Erstellen Sie ein Git-Repository

Heroku bietet verschiedene Möglichkeiten der Implementierung, aber wir werden git verwenden, da es einfach ist.

Geben Sie den folgenden Befehl ein, um ein leeres Git-Repository zu initialisieren. Stellen Sie sicher, dass Sie sich im Stammverzeichnis Ihres Projekts befinden.

git init

Einführen Sitzung en Heroku

Dann, wir müssen uns bei Heroku . einloggen. Das können wir mit dem folgenden Befehl tun.

Heroku-Login

Sie werden aufgefordert, eine Taste zu drücken und, sobald ich es geschafft habe, Sie werden zu einem Anmeldebildschirm in Ihrem Standardbrowser weitergeleitet.

32580Screenshot20229-7299430

Nach Eingabe Ihrer Zugangsdaten, Sie sollten etwas wie das Folgende sehen.

61684Screenshot20230-4759232

Stellen Sie die Anwendung bereit

Schließlich, wir können unsere Anwendung in Heroku implement implementieren. Lassen Sie uns zuerst eine Instanz unserer Anwendung erstellen. Das können wir mit dem folgenden Befehl tun.

heroku erstellt Häuser-Preis-Prädiktor

Hauspreis-Prädiktor ist ein Name, den ich für meine Bewerbung gewählt habe. Sie können nicht denselben Namen verwenden, den ich bereits verwendet habe. Wählen Sie also Ihren App-Namen entsprechend aus.

Schließlich, Senden Sie den Code mit den folgenden Befehlen an diese Instanz.

git hinzufügen . 
git commit -m "eine Nachricht" 
git push heroku meister

Beim Ausführen von git push Heroku Master, Sie sollten beachten, dass es automatisch erkennen sollte, dass Sie eine Python-Anwendung haben und alle Pakete in der Datei Requirements.txt installieren sollten. Nachdem der Befehl beendet ist, Sie sollten etwas wie das Folgende sehen.

22116bereitgestellt-8359176

Notiz: Wie ich den Namen gewählt habe Hauspreis-Prädiktor, Ich habe diese URL. Sie erhalten eine URL entsprechend Ihrem App-Namen.

Klicken Sie auf die URL, um Ihre live bereitgestellte Anwendung anzuzeigen.

Herzliche Glückwünsche! Verfügen über Ich habe unsere erste Anwendung erfolgreich bereitgestellt.

Bonus-Tipps

Wenn du dich ändern willst / Dateien nach der Bereitstellung bearbeiten, Sie können dies in Ihren Dateien tun und die folgenden Befehle ausführen, damit diese Änderungen in Ihrer live bereitgestellten Anwendung widergespiegelt werden.

git hinzufügen . 
git commit -m "eine Nachricht" 
git push heroku meister

Sie erhalten wieder die gleiche URL wie im Bild oben gezeigt, klick darauf und voila!

Abschließende Anmerkungen

Damit ist die heutige Diskussion abgeschlossen.

Danke, dass du das gelesen hast!

Ich hoffe, Ihnen hat der Artikel gefallen und Sie haben Ihre erste Streamlit-App erfolgreich auf Heroku implementiert!!

Klicken Sie hier, um unsere erste live beleuchtete App zu sehen. Fühlen Sie sich frei, Ihren ersten Live-App-Link in den Kommentarbereich unten zu setzen.

Habe ich etwas Wichtiges verpasst oder wollte ich deine Gedanken teilen? Kommentiere unten und ich antworte dir.

Über den Autor

Ich bin Harsh Dhamecha, ein angehender Datenwissenschaftler. Ich bin letztes Jahr Student des Informatikstudiums mit Spezialisierung auf Künstliche Intelligenz. Ein motivierter Student, der der Data-Science-Community so viel wie möglich helfen möchte.

Wenn Sie eine Frage haben, kann direkt Email mich oder verbinde dich mit mir auf LinkedIn Ö Twitter.

Wenn es dir gefällt, wie ich schreibe, Sie können auch die anderen Artikel durchsuchen, die ich geschrieben habe.

Weiter lesen! Ein besonderes Dankeschön an dich 🙌

Die in diesem Artikel gezeigten Medien zur Implementierung der Streamlit-App auf Heroku sind nicht Eigentum von DataPeaker und werden nach Ermessen des Autors verwendet.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.

Datenlautsprecher