Konvertieren eines Notebooks in ein Skript
Wenn Sie Notebooks für Experimente und die Entwicklung verwendet haben, müssen Sie zunächst ein Notebook in ein Skript konvertieren. Alternativ könnten Sie die Verwendung von Notebooks überspringen und nur mit Skripts arbeiten. In beiden Fällen gibt es beim Erstellen von Skripts einige Empfehlungen für produktionsbereiten Code.
Skripts eignen sich ideal zum Testen und Automatisieren in Ihrer Produktionsumgebung. Sie müssen wie folgt vorgehen, um ein produktionsbereites Skript zu erstellen:
- Entfernen Sie unwichtigen Code.
- Gestalten Sie Ihren Code in Funktionen um.
- Testen Sie Ihr Skript im Terminal.
Entfernen des unwichtigen Codes
Der Hauptvorteil der Verwendung von Notebooks besteht darin, Ihre Daten schnell zu untersuchen. Beispielsweise können Sie print()- und df.describe()-Anweisungen verwenden, um Ihre Daten und Variablen zu untersuchen. Wenn Sie ein Skript erstellen, das für die Automatisierung verwendet wird, sollten Sie vermeiden, dass Code für explorative Zwecke einbezogen wird.
Als erstes müssen Sie daher zum Konvertieren Ihres Codes in Produktionscode den unwichtigen Code entfernen. Vor allem, wenn Sie den Code regelmäßig ausführen, möchten Sie vermeiden, dass unwichtiger Code ausgeführt wird, um Kosten und Computezeit zu sparen.
Umgestalten Ihres Codes in Funktionen
Wenn Sie Code in Geschäftsprozessen verwenden, soll der Code einfach zu lesen sein, damit jeder ihn verwalten kann. Ein gängiger Ansatz, um Code einfacher zu lesen und zu testen, ist die Verwendung von Funktionen.
Sie könnten zum Beispiel den folgenden Beispielcode in einem Notebook verwendet haben, um die Daten zu lesen und aufzuteilen:
# 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)
Da Sie mithilfe von Funktionen auch Teile ihres Codes testen können, sollten Sie mehrere kleinere Funktionen anstelle einer großen Funktion erstellen. Wenn Sie nur einen Teil Ihres Codes testen möchten, können Sie sich dafür entscheiden, nur einen kleinen Teil zu testen und nicht mehr Code als erforderlich auszuführen.
Sie können den im Beispiel gezeigten Code in zwei Funktionen umgestalten:
- Lesen der Daten
- Teilen der Daten
Ein Beispiel für umgestalteten Code könnte folgendermaßen aussehen:
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
Hinweis
Möglicherweise haben Sie bemerkt, dass im umgestalteten Code auch unwichtiger Code ausgelassen wurde. Sie können print-Anweisungen im Produktionscode verwenden, wenn Sie die Ausgabe des Skripts überprüfen und sicherstellen möchten, dass der gesamte Code wie erwartet ausgeführt wird. Wenn Sie jedoch wissen, dass Sie die Ausgabe eines Skripts nicht in einem Terminal überprüfen werden, ist es am besten, jeden Code zu entfernen, der keinen Zweck erfüllt.
Testen Sie Ihr Skript
Bevor Sie Skripts in Produktionsumgebungen verwenden, z. B. durch Integration in Automatisierungspipelines, sollten Sie testen, ob die Skripts wie erwartet funktionieren.
Eine einfache Möglichkeit zum Testen Ihres Skripts besteht darin, das Skript in einem Terminal auszuführen. Im Azure Machine Learning-Arbeitsbereich können Sie schnell ein Skript im Terminal der Compute-Instanz ausführen.
Wenn Sie ein Skript auf der Seite " Notizbücher " im Azure Machine Learning Studio öffnen, können Sie das Skript im Terminal speichern und ausführen.
Alternativ können Sie direkt zum Terminal der Compute-Instanz navigieren. Navigieren Sie zur Computeseite , und wählen Sie das Terminal der Computeinstanz aus, die Sie verwenden möchten. Sie können den folgenden Befehl verwenden, um ein Python-Skript mit dem Namen train.pyauszuführen:
python train.py
Ausgaben von print-Anweisungen werden im Terminal angezeigt. Alle möglichen Fehler werden auch im Terminal angezeigt.