Implementazione in Heroku | Distribuire l'applicazione ML / DL Streamlit e Heroku

Contenuti

¿Desarrolló una aplicación de aprendizaje automático o apprendimento profondo utilizando Streamlit y no sabe cómo implementarla en Heroku? Non preoccuparti, gli copro la schiena. In questo articolo, Discuterò come implementare la tua applicazione ML / DL Streamlit e Heroku. Allora cominciamo!

Nota: Questo articolo considera che il lettore ha già sviluppato un'applicazione ottimizzata e utilizzeremo un'applicazione demo in questo articolo.

Sommario

  1. Crea un'applicazione demo
  2. Software richiesto
  3. Implementazione in Heroku
  4. Note finali

Crea un'applicazione demo

Costruiamo un'app demo. Useremo un semplice e famoso Previsione del prezzo della casa Applicazione. È possibile scaricare i set di dati da qui. Di seguito è riportato il codice.

importa panda come pd
importa numpy come np
import streamlit as st
tempo di importazione
da sklearn.preprocessing import StandardScaler
da sklearn.linear_model import LinearRegression
da sklearn.model_selection import train_test_split
def principale():
    df = load_data()
    df = preprocess_data(df)
    st.titolo("Previsione dei prezzi delle case per la Silicon Valley dell'India" - Bangalore')
    st.markdown('Basta inserire i seguenti dettagli e noi prevediamo il prezzo della tua **Casa dei sogni**')
    st.sidebar.title("Contatto dello sviluppatore")
    st.sidebar.markdown('[![Duro-Dhamecha]'
                        '(https://img.shields.io/badge/Author-Harsh Dhamecha-brightgreen)]'
                        '(https://www.linkedin.com/in/harsh-dhamecha/)')
    st.avvertimento("Inserisci solo valori numerici nei seguenti campi")
    bhk = st.text_input("BHK . totali")
    area = st.text_input("Area in piedi quadrati")
    bagni = st.text_input("Totale bagni")
    balcone = st.selectbox("Balcone totale", ['0', '1', '2', '3'])
    invia = st.button("Prevedi prezzo")
    se presentare: 
        se bhk e area e bagni e balcone:
            con st.spinner('Prevedere...'):
                tempo.dormire(2)
                bhk, la zona, bagni, balcone = int(bhk), int(la zona), int(bagni), int(balcone)
                x_test = np.array([[bhk, la zona, bagni, balcone]])
                predizione = predire(df, x_test)
                st.info(F"Il prezzo della tua **casa dei sogni** è {predizione} lacs")
        altro:
            st.errore("Inserisci tutti i dettagli")
@st.cache
def train_model(df):
    scalatore globale
    X, y = df.iloc[:, :-1].valori, df.iloc[:, -1].valori
    scaler = StandardScaler().in forma(X)
    X = scaler.trasformare(X)
    X_treno, X_test, y_train, y_test = train_test_split(X, e, test_size=0.2, stato_casuale=23)
    modello = regressione lineare().in forma(X_treno, y_train)
    modello di ritorno, ablatore
def predire(df, x_test):
    modello, scaler = train_model(df)
    X_test = scaler.transform(x_test)
    y_pred = model.predict(X_test)
    torna indietro(y_pred[0], 2)
def load_data():
    return pd.read_csv("Set di dati/previsione-prezzo-casa.csv")
def preprocess_data(df):
    df = df.loc[:, ['dimensione', 'total_sqft', 'bagno', 'balcone', 'prezzo']]
    df.dropna(inplace=Vero)
    df = df[df['dimensione'].str.contiene('BHK', na = falso)]
    df['dimensione'] = df['dimensione'].str.replace(r'D', '').come tipo(int)
    df['total_sqft'] = df['total_sqft'].str.estratto(R'(d+)', espandi=Falso)
    df['bagno'] = df['bagno'].come tipo(int)
    df['balcone'] = df['balcone'].come tipo(int)
    df['total_sqft'] = df['total_sqft'].come tipo(int)
    ritorno df
if __name__ == '__main__':
    principale()

Puoi eseguire la tua applicazione streamlit localmente usando il seguente comando.

esegui in modo semplificato app.py

Nota: app.py è il file che vogliamo eseguire.

La nostra applicazione è simile alla seguente.

Prima di inserire i dettagli:

58168app-1-1105647

Dopo aver inserito i dettagli:

65904app-2-7907168

Software richiesto

Per implementare la nostra applicazione ottimizzata, abbiamo bisogno del seguente software:

  1. Idiota Scarica da qui
  2. Heroku CLI Scarica da qui
  3. Account Heroku gratuito crea qui

e segui le istruzioni sullo schermo.

Implementazione in Heroku

Ora che abbiamo la nostra applicazione demo e il software necessario nelle nostre mani, implementiamo la nostra applicazione su Heroku.

File richiesti

Primo, dobbiamo aggiungere alcuni file che consentano a Heroku di installare tutte le librerie richieste ed eseguire la nostra applicazione.

requisito.txt

Questo file contiene tutte le librerie necessarie che verranno installate affinché il progetto funzioni. Questo file può essere creato manualmente rivedendo il progetto ed elencando tutte le librerie che sono state utilizzate nel progetto. Ma useremo i pipreq modulo per farlo, che crea automaticamente un file require.txt. Installalo con il seguente comando se non l'hai già fatto.

pip install pipreqs

Ora, vai alla directory del tuo progetto e digita il seguente comando.

pipreqs ./

Il nostro file require.txt è pronto!! Dovrebbe assomigliare al seguente.

16279requisiti-4918732

Procfile e setup.sh

Usando questi due file, diciamo a Heroku i comandi necessari per avviare la nostra applicazione.

Nel file setup.sh creeremo una cartella streamlit con credenziali.toml e un file config.toml. Di seguito è riportato il comando che verrà incollato nel file setup.sh.

mkdir -p ~/.streamlit/
eco "
[generale]n
e-mail = "[e-mail protetta]"n
" > ~/.streamlit/credentials.toml
eco "
[server]n
senza testa = truen
enableCORS=false
porta = $PORTn
" > ~/.streamlit/config.toml

Il Procfile viene utilizzato per eseguire prima setup.sh e poi chiamare corsa illuminata per eseguire l'applicazione. Il tuo Procfile dovrebbe essere simile al seguente.

ragnatela: sh setup.sh && esegui in modo semplificato app.py

Nota: app.py è il file che vogliamo eseguire per primo (contiene la funzione principale). Se hai definito la tua funzione principale in qualche altro file, passalo invece di app.py.

Crea un repository Git

Heroku offre diversi modi di implementazione, ma useremo git poiché è semplice.

Digita il seguente comando per inizializzare un repository git vuoto. Assicurati di essere nella directory principale del tuo progetto.

git init

Iniciar sessione en Heroku

Prossimo, dobbiamo accedere a Heroku. Possiamo farlo con il seguente comando.

login heroku

Ti verrà chiesto di premere un pulsante e, una volta che l'ho fatto, verrai reindirizzato a una schermata di accesso nel browser predefinito.

32580screenshot20229-7299430

Dopo aver inserito le tue credenziali, dovresti vedere qualcosa come il seguente.

61684screenshot20230-4759232

Distribuire l'applicazione

Finalmente, possiamo implementare la nostra applicazione in Heroku. Creiamo prima un'istanza della nostra applicazione. Possiamo farlo con il seguente comando.

heroku crea case-prezzi-prezzi

predittore del prezzo della casa è un nome che ho scelto per la mia candidatura. Non puoi usare lo stesso nome che ho già preso io. Quindi scegli il nome della tua app di conseguenza.

Finalmente, invia il codice a quell'istanza con i seguenti comandi.

git add . 
git commit -m "qualche messaggio" 
git push heroku maestro

Quando si esegue git push Heroku master, Dovresti notare che dovrebbe rilevare automaticamente che hai un'applicazione Python e dovrebbe installare tutti i pacchetti all'interno di require.txt. Al termine del comando, dovresti vedere qualcosa come il seguente.

22116schierato-8359176

Nota: Come ho scelto il nome predittore del prezzo della casa, ho questo URL. Otterresti un URL in base al nome della tua app.

Fai clic sull'URL per vedere la tua applicazione distribuita live.

Congratulazioni! Ho Ho distribuito con successo la nostra prima applicazione.

Suggerimenti bonus

Se vuoi cambiare / modifica i file dopo la distribuzione, puoi farlo nei tuoi file ed eseguire i seguenti comandi affinché tali modifiche si riflettano nella tua applicazione distribuita live.

git add . 
git commit -m "qualche messaggio" 
git push heroku maestro

Otterresti di nuovo lo stesso URL mostrato nell'immagine sopra, fai clic su quello e voilà!

Note finali

Questo completa la discussione di oggi.

Grazie per aver letto questo!

Spero che l'articolo ti sia piaciuto e che abbia implementato con successo la tua prima app Streamlit su Heroku!!

Clicca qui per vedere la nostra prima app illuminata dal vivo. Sentiti libero di inserire il tuo primo collegamento all'app live nella sezione commenti qui sotto.

Mi sono perso qualcosa di importante o volevo condividere i tuoi pensieri? Commenta qui sotto e ti risponderò.

Circa l'autore

Sono il duro Dhamecha, un aspirante scienziato dei dati. Sono uno studente dell'ultimo anno della laurea in Informatica con specializzazione in Intelligenza Artificiale. Uno studente motivato desideroso di aiutare la comunità della scienza dei dati il ​​più possibile.

Se hai qualche domanda, può direttamente E-mail me o connettiti con me su LinkedIn oh Twitter.

Se ti piace come scrivo, puoi anche cercare negli altri articoli che ho scritto.

Continua a leggere! Un grazie speciale a te ?

Il supporto mostrato in questo articolo che spiega come implementare l'app Streamlit su Heroku non è di proprietà di DataPeaker e viene utilizzato a discrezione dell'autore.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.