Konvertera en notebook-fil till ett skript

Slutförd

När du använde notebook-filer för experimentering och utveckling måste du först konvertera en notebook-fil till ett skript. Du kan också välja att hoppa över att använda notebook-filer och endast arbeta med skript. Hur som helst finns det några rekommendationer när du skapar skript för att ha produktionsklar kod.

Skript är idealiska för testning och automatisering i din produktionsmiljö. Om du vill skapa ett produktionsklart skript måste du:

  • Ta bort onödig kod.
  • Omstrukturera koden till funktioner.
  • Testa skriptet i terminalen.

Ta bort all onödig kod

Den största fördelen med att använda notebook-filer är att snabbt kunna utforska dina data. Du kan till exempel använda print() och df.describe() instruktioner för att utforska dina data och variabler. När du skapar ett skript som används för automatisering vill du undvika att inkludera kod som skrivits i undersökande syfte.

Det första du därför behöver göra för att konvertera koden till produktionskoden är att ta bort den icke-nödvändiga koden. Särskilt när du kör koden regelbundet vill du undvika att köra något som inte är viktigt för att minska kostnaderna och beräkningstiden.

Omstrukturera koden till funktioner

När du använder kod i affärsprocesser vill du att koden ska vara lättläst så att vem som helst kan underhålla den. En vanlig metod för att göra koden enklare att läsa och testa är att använda funktioner.

Anta till exempel att du använde följande exempelkod i en notebook-fil för att läsa och dela upp data:

# read and visualize the data
print("Reading data...")
df = pd.read_csv('diabetes.csv')
df.head()

# split data
print("Splitting data...")
X, y = df[['Pregnancies','PlasmaGlucose','DiastolicBloodPressure','TricepsThickness','SerumInsulin','BMI','DiabetesPedigree','Age']].values, df['Diabetic'].values

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=0)

Eftersom funktioner också gör att du kan testa delar av koden kanske du föredrar att skapa flera mindre funktioner i stället för en stor funktion. Om du vill testa en del av koden kan du välja att bara testa en liten del och undvika att köra mer kod än nödvändigt.

Du kan omstrukturera koden som visas i exemplet till två funktioner:

  • Läs data
  • Dela upp datan

Ett exempel på omstrukturerad kod kan vara:

def main(csv_file):
    # read data
    df = get_data(csv_file)

    # split data
    X_train, X_test, y_train, y_test = split_data(df)

# function that reads the data
def get_data(path):
    df = pd.read_csv(path)
    
    return df

# function that splits the data
def split_data(df):
    X, y = df[['Pregnancies','PlasmaGlucose','DiastolicBloodPressure','TricepsThickness',
    'SerumInsulin','BMI','DiabetesPedigree','Age']].values, df['Diabetic'].values

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=0)

    return X_train, X_test, y_train, y_test

Anmärkning

Du kanske har märkt att icke-nödvändig kod också utelämnades i den omstrukturerade koden. Du kan välja att använda print instruktioner i produktionskoden om du granskar skriptets utdata och vill se till att all kod körs som förväntat. Men när du vet att du inte kommer att granska utdata från ett skript i en terminal är det bäst att ta bort all kod som inte har något syfte.

Testa skriptet

Innan du använder skript i produktionsmiljöer, till exempel genom att integrera dem med automationspipelines, vill du testa om skripten fungerar som förväntat.

Ett enkelt sätt att testa skriptet är att köra skriptet i en terminal. På Azure Machine Learning-arbetsytan kan du snabbt köra ett skript i terminalen för beräkningsinstansen.

När du öppnar ett skript på sidan Notebooks i Azure Machine Learning Studio kan du välja att spara och köra skriptet i terminalen.

Du kan också navigera direkt till terminalen för beräkningsinstansen. Gå till sidan Beräkning och välj terminalen för den beräkningsinstans som du vill använda. Du kan använda följande kommando för att köra ett Python-skript med namnet train.py:

python train.py

Utdata från print-uttalanden visas i terminalen. Eventuella fel visas också i terminalen.