Konwertowanie notesu na skrypt
W przypadku korzystania z notesów na potrzeby eksperymentowania i programowania należy najpierw przekonwertować notes na skrypt. Alternatywnie możesz pominąć korzystanie z notesów i pracować tylko ze skryptami. W obu przypadkach istnieją pewne zalecenia dotyczące tworzenia skryptów w celu utworzenia kodu gotowego do produkcji.
Skrypty są idealne do testowania i automatyzacji w środowisku produkcyjnym. Aby utworzyć skrypt gotowy do produkcji, należy wykonać następujące działania:
- Usuń zbędny kod.
- Podziel swój kod na funkcje.
- Przetestuj skrypt w terminalu.
Usuń cały zbędny kod
Główną zaletą korzystania z notesów jest możliwość szybkiego eksplorowania danych. Na przykład możesz użyć instrukcji print() i df.describe() do eksplorowania danych i zmiennych. Podczas tworzenia skryptu używanego do automatyzacji należy unikać dołączania kodu napisanego do celów eksploracyjnych.
Pierwszą rzeczą, którą należy zatem wykonać, aby przekonwertować kod na kod produkcyjny, jest usunięcie kodu beznieściowego. Szczególnie w przypadku regularnego uruchamiania kodu, należy unikać wykonywania nieistotnych operacji, aby zmniejszyć koszty i czas przetwarzania.
Przekształć swój kod na funkcje
W przypadku korzystania z kodu w procesach biznesowych chcesz, aby kod był łatwy do odczytania, aby każdy mógł go obsługiwać. Jednym z typowych metod ułatwiania odczytywania i testowania kodu jest użycie funkcji.
Załóżmy na przykład, że w notesie użyto następującego przykładowego kodu do odczytywania i dzielenia danych:
# 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)
Ponieważ funkcje umożliwiają również testowanie części kodu, warto utworzyć wiele mniejszych funkcji, a nie jedną dużą funkcję. Jeśli chcesz przetestować część kodu, możesz przetestować tylko niewielką część i uniknąć uruchamiania więcej kodu niż jest to konieczne.
Kod pokazany w przykładzie można zrefaktoryzować na dwie funkcje.
- Odczytywanie danych
- Dzielenie danych
Przykładem refaktoryzowanego kodu może być:
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
Uwaga / Notatka
Być może zauważyłeś, że kod nieistotny został również pominięty w refaktoryzowanym kodzie. Możesz użyć print instrukcji w kodzie produkcyjnym, jeśli przeglądasz dane wyjściowe skryptu i chcesz upewnić się, że cały kod został uruchomiony zgodnie z oczekiwaniami. Jeśli jednak wiesz, że nie będziesz przeglądać danych wyjściowych skryptu w terminalu, najlepiej jest usunąć dowolny kod, który nie ma celu.
Testowanie skryptu
Przed użyciem skryptów w środowiskach produkcyjnych, na przykład przez zintegrowanie ich z potokami automatyzacji, chcesz sprawdzić, czy skrypty działają zgodnie z oczekiwaniami.
Jednym z prostych sposobów testowania skryptu jest uruchomienie skryptu w terminalu. W obszarze roboczym usługi Azure Machine Learning można szybko uruchomić skrypt w terminalu wystąpienia obliczeniowego.
Po otwarciu skryptu na stronie Notesy programu Azure Machine Learning Studio możesz zapisać i uruchomić skrypt w terminalu.
Alternatywnie możesz przejść bezpośrednio do terminalu instancji obliczeniowej. Przejdź do strony Obliczenia i wybierz terminal wystąpienia obliczeniowego, którego chcesz użyć. Możesz użyć następującego polecenia, aby uruchomić skrypt języka Python o nazwie train.py:
python train.py
Dane wyjściowe instrukcji print są wyświetlane w terminalu. Wszelkie możliwe błędy są również wyświetlane w terminalu.