Udostępnij za pośrednictwem


Wykonywanie skryptu w języku Python

Ważne

Obsługa programu Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Learning przed tym terminem.

Od 1 grudnia 2021 r. nie będzie można tworzyć nowych zasobów programu Machine Learning Studio (wersja klasyczna). Do 31 sierpnia 2024 r. można będzie nadal korzystać z istniejących zasobów programu Machine Learning Studio (wersja klasyczna).

Dokumentacja programu ML Studio (wersja klasyczna) jest wycofywana i może nie być aktualizowana w przyszłości.

Wykonuje skrypt języka Python z eksperymentu Machine Learning

Kategoria: Moduły języka Python

Uwaga

Dotyczy: tylko Machine Learning Studio (wersja klasyczna)

Podobne moduły przeciągania i upuszczania są dostępne w projektancie Azure Machine Learning.

Omówienie modułu

W tym artykule opisano sposób używania modułu Execute Python Script (Wykonywanie skryptu języka Python) w programie Machine Learning Studio (klasycznym) do uruchamiania kodu w języku Python. Aby uzyskać więcej informacji na temat architektury i zasad projektowania języka Python w programie Studio (klasycznym), zobacz następujący artykuł.

Język Python umożliwia wykonywanie zadań, które nie są obecnie obsługiwane przez istniejące moduły programu Studio (klasyczne), takie jak:

  • Wizualizowanie danych przy użyciu matplotlib
  • Wyliczanie zestawów danych i modeli w obszarze roboczym przy użyciu bibliotek języka Python
  • Odczytywanie, ładowanie i manipulowanie danymi ze źródeł nieobsługiwanych przez moduł Importuj dane

Machine Learning Studio (wersja klasyczna) korzysta z dystrybucji Anaconda języka Python, która obejmuje wiele popularnych narzędzi do przetwarzania danych.

Jak używać wykonywania skryptu języka Python

Moduł Execute Python Script (Wykonywanie skryptu języka Python ) zawiera przykładowy kod języka Python, którego można użyć jako punktu początkowego. Aby skonfigurować moduł Execute Python Script (Wykonywanie skryptu języka Python ), należy podać zestaw danych wejściowych i kodu języka Python do wykonania w polu tekstowym skryptu języka Python .

  1. Dodaj moduł Execute Python Script (Wykonywanie skryptu języka Python ) do eksperymentu.

  2. Przewiń do dołu okienka Właściwości , a w obszarze Wersja języka Python wybierz wersję bibliotek języka Python i środowisko uruchomieniowe, które mają być używane w skry skrycie.

    • Dystrybucja anaconda 2.0 dla języka Python 2.7.7
    • Dystrybucja anaconda 4.0 dla języka Python 2.7.11
    • Dystrybucja anaconda 4.0 dla języka Python 3.5 (ustawienie domyślne)

    Zalecamy ustawienie wersji przed wpisaniem nowego kodu. Jeśli zmienisz wersję później, zostanie wyświetlony monit o potwierdzenie zmiany.

    Ważne

    Jeśli używasz wielu wystąpień modułu Execute Python Script (Wykonywanie skryptu języka Python ) w eksperymencie, musisz wybrać jedną wersję języka Python dla wszystkich modułów w eksperymencie.

  3. Dodaj zestaw danych Dataset1 i nawiąż połączenie z poziomu programu Studio (wersja klasyczna), których chcesz użyć do wprowadzania danych. Odwoływanie się do tego zestawu danych w skryscie języka Python jako elementu DataFrame1.

    Użycie zestawu danych jest opcjonalne, jeśli chcesz wygenerować dane przy użyciu języka Python lub użyć kodu języka Python do zaimportowania danych bezpośrednio do modułu.

    Ten moduł obsługuje dodanie drugiego zestawu danych programu Studio (klasycznego) w zestawie danych Dataset2. Odwoływanie się do drugiego zestawu danych w skryscie języka Python jako elementu DataFrame2.

    Zestawy danych przechowywane w programie Studio (klasycznym) są automatycznie konwertowane na bibliotekę pandas data.frame po załadowaniu do tego modułu.

    Execute Python input map

  4. Aby dołączyć nowe pakiety języka Python lub kod, dodaj spakowany plik zawierający te zasoby niestandardowe w pakiecie skryptów. Dane wejściowe w pakiecie Skrypt muszą być plikiem spakowany, który został już przekazany do obszaru roboczego. Aby uzyskać więcej informacji na temat przygotowywania i przekazywania tych zasobów, zobacz Rozpakowywanie spakowanych danych.

    Podczas wykonywania eksperymentu można użyć dowolnego pliku zawartego w przekazanym archiwum zip. Jeśli archiwum zawiera strukturę katalogów, struktura jest zachowywana, ale należy wstępnie utworzyć katalog o nazwie src do ścieżki.

  5. W polu tekstowym Skrypt języka Python wpisz lub wklej prawidłowy skrypt języka Python.

    Pole tekstowe skryptu języka Python jest wstępnie wypełnione instrukcjami w komentarzach oraz przykładowy kod na potrzeby dostępu do danych i danych wyjściowych. Musisz edytować lub zastąpić ten kod. Pamiętaj, aby postępować zgodnie z konwencjami języka Python dotyczącymi wcięcia i wielkości liter.

    • Skrypt musi zawierać funkcję o nazwie azureml_main jako punkt wejścia dla tego modułu.
    • Funkcja punktu wejścia może zawierać maksymalnie dwa argumenty wejściowe: Param<dataframe1> i Param<dataframe2>
    • Spakowane pliki połączone z trzecim portem wejściowym są rozpakowane i przechowywane w katalogu , .\Script Bundlektóry jest również dodawany do języka Python sys.path.

    W związku z tym, jeśli plik zip zawiera mymodule.py, zaimportuj go przy użyciu polecenia import mymodule.

    • Pojedynczy zestaw danych może zostać zwrócony do programu Studio (wersja klasyczna), który musi być sekwencją typu pandas.DataFrame. Możesz tworzyć inne dane wyjściowe w kodzie języka Python i zapisywać je bezpośrednio w usłudze Azure Storage lub tworzyć wizualizacje przy użyciu urządzenia w języku Python.
  6. Uruchom eksperyment lub wybierz moduł, a następnie kliknij pozycję Uruchom wybrane , aby uruchomić tylko skrypt języka Python.

    Wszystkie dane i kod są ładowane do maszyny wirtualnej i uruchamiane przy użyciu określonego środowiska języka Python.

Wyniki

Moduł zwraca następujące dane wyjściowe:

  • Zestaw danych wyników. Wyniki wszystkich obliczeń wykonywanych przez osadzony kod języka Python muszą być podane jako ramka pandas data.frame, która jest automatycznie konwertowana na format zestawu danych Machine Learning, aby można było używać wyników z innymi modułami w eksperymencie. Moduł jest ograniczony do pojedynczego zestawu danych jako danych wyjściowych. Aby uzyskać więcej informacji, zobacz Tabela danych.

  • Urządzenie w języku Python. Te dane wyjściowe obsługują zarówno dane wyjściowe konsoli, jak i wyświetlanie grafiki PNG przy użyciu interpretera języka Python.

Jak dołączyć zasoby skryptu

Moduł Execute Python Script (Wykonywanie skryptu języka Python ) obsługuje dowolne pliki skryptów języka Python jako dane wejściowe, pod warunkiem, że są one przygotowane z wyprzedzeniem i przekazane do obszaru roboczego w ramach pliku .ZIP.

Przekazywanie pliku ZIP zawierającego kod języka Python do obszaru roboczego

  1. W obszarze eksperymentu Machine Learning Studio (wersja klasyczna) kliknij pozycję Zestawy danych, a następnie kliknij pozycję Nowy.

  2. Wybierz opcję Z pliku lokalnego.

  3. W oknie dialogowym Przekazywanie nowego zestawu danych kliknij listę rozwijaną Wybierz typ nowego zestawu danych i wybierz opcję Plik zip (.zip).

  4. Kliknij przycisk Przeglądaj , aby zlokalizować spakowany plik.

  5. Wpisz nową nazwę do użycia w obszarze roboczym. Nazwa przypisana do zestawu danych staje się nazwą folderu w obszarze roboczym, w którym wyodrębniane są zawarte pliki.

  6. Po przekazaniu spakowanego pakietu do programu Studio (wersja klasyczna) sprawdź, czy spakowany plik jest dostępny na liście Zapisane zestawy danych , a następnie połącz zestaw danych z portem wejściowym pakietu skryptów .

    Wszystkie pliki zawarte w pliku ZIP są dostępne do użycia w czasie wykonywania: na przykład przykład przykładowe dane, skrypty lub nowe pakiety języka Python.

    Jeśli plik zip zawiera biblioteki, które nie zostały jeszcze zainstalowane w programie Machine Learning Studio (wersja klasyczna), musisz zainstalować pakiet biblioteki języka Python w ramach skryptu niestandardowego.

    Jeśli istnieje struktura katalogów, zostanie zachowana. Należy jednak zmienić kod, aby prepend katalogu src do ścieżki.

Debugowanie kodu w języku Python

Moduł Execute Python Script (Wykonywanie skryptu języka Python ) działa najlepiej, gdy kod został uwzględniony jako funkcja z jasno zdefiniowanymi danymi wejściowymi i wyjściowymi, a nie sekwencją luźno powiązanych instrukcji wykonywalnych.

Ten moduł języka Python nie obsługuje funkcji, takich jak IntelliSense i debugowanie. Jeśli moduł ulegnie awarii w czasie wykonywania, możesz wyświetlić szczegóły błędu w dzienniku danych wyjściowych modułu. Jednak pełny ślad stosu języka Python nie jest dostępny. Dlatego zalecamy, aby użytkownicy opracowywali i debugowali swoje skrypty języka Python w innym środowisku, a następnie importowali kod do modułu.

Niektóre typowe problemy, których można szukać:

  • Sprawdź typy danych w ramce danych zwracanej z powrotem z pliku azureml_main. Błędy są prawdopodobne, jeśli kolumny zawierają typy danych inne niż typy liczbowe i ciągi.

  • Usuń wartości NA z zestawu danych przy użyciu polecenia dataframe.dropna() eksportowania ze skryptu języka Python. Podczas przygotowywania danych użyj modułu Clean Missing Data (Czyszczenie brakujących danych ).

  • Sprawdź osadzony kod pod kątem błędów wcięcia i białych znaków. Jeśli wystąpi błąd "IndentationError: oczekiwano wcięcia bloku", zapoznaj się z następującymi zasobami, aby uzyskać wskazówki:

Znane ograniczenia

  • Środowisko uruchomieniowe języka Python jest w trybie piaskownicy i nie zezwala na dostęp do sieci ani do lokalnego systemu plików w trwały sposób.

  • Wszystkie pliki zapisane lokalnie są izolowane i usuwane po zakończeniu modułu. Kod języka Python nie może uzyskać dostępu do większości katalogów na maszynie, na której działa, wyjątek jest bieżącym katalogiem i jego podkatalogami.

    Po podaniu pliku spakowanego jako zasobu pliki są kopiowane z obszaru roboczego do obszaru wykonywania eksperymentu, rozpakowane, a następnie używane. Kopiowanie i rozpakowywanie zasobów może zużywać pamięć.

  • Moduł może wygenerować pojedynczą ramkę danych. Nie można zwrócić dowolnych obiektów języka Python, takich jak wytrenowane modele bezpośrednio do środowiska uruchomieniowego studio (klasycznego). Można jednak zapisywać obiekty w magazynie lub w obszarze roboczym. Inną opcją jest użycie pickle do serializacji wielu obiektów do tablicy bajtów, a następnie zwracania tablicy wewnątrz ramki danych.

Przykłady

Przykłady integrowania skryptu języka Python z eksperymentami w programie Studio (klasycznym) można znaleźć w tych zasobach w galerii sztucznej inteligencji platformy Azure:

Zobacz też

Moduły języka R