다음을 통해 공유


Python 스크립트 실행

중요

Machine Learning Studio(클래식)에 대한 지원은 2024년 8월 31일에 종료됩니다. 해당 날짜까지 Azure Machine Learning으로 전환하는 것이 좋습니다.

2021년 12월 1일부터 새로운 Machine Learning Studio(클래식) 리소스를 만들 수 없습니다. 2024년 8월 31일까지는 기존 Machine Learning Studio(클래식) 리소스를 계속 사용할 수 있습니다.

ML Studio(클래식) 설명서는 사용 중지되며 나중에 업데이트되지 않을 수 있습니다.

Machine Learning 실험에서 Python 스크립트를 실행합니다.

범주: Python 언어 모듈

참고

적용 대상: Machine Learning Studio(클래식) 전용

유사한 끌어서 놓기 모듈은 Azure Machine Learning 디자이너에서 사용할 수 있습니다.

모듈 개요

이 문서에서는 Machine Learning Studio(클래식)에서 Python 스크립트 실행 모듈을 사용하여 Python 코드를 실행하는 방법을 설명합니다. Studio(클래식)에서 Python의 아키텍처 및 디자인 원칙에 대한 자세한 내용은 다음 문서를 참조하세요.

Python을 사용하면 다음과 같은 기존 Studio(클래식) 모듈에서 현재 지원되지 않는 작업을 수행할 수 있습니다.

  • 를 사용하여 데이터 시각화 matplotlib
  • Python 라이브러리를 사용하여 작업 영역의 데이터 세트 및 모델 열거
  • 데이터 가져오기 모듈에서 지원하지 않는 원본의 데이터 읽기, 로드 및 조작

Machine Learning Studio(클래식)는 데이터 처리를 위한 많은 공통 유틸리티를 포함하는 Python의 Anaconda 배포를 사용합니다.

Python 스크립트 실행 사용 방법

Python 스크립트 실행 모듈에는 시작점으로 사용할 수 있는 샘플 Python 코드가 포함되어 있습니다. Python 스크립트 실행 모듈을 구성하려면 Python 스크립트 텍스트 상자에서 실행할 입력 및 Python 코드 집합을 제공합니다.

  1. 실험에 Python 스크립트 실행 모듈을 추가합니다.

  2. 속성 창의 아래쪽으로 스크롤하고 Python 버전의 경우 스크립트에서 사용할 Python 라이브러리 및 런타임 버전을 선택합니다.

    • Python 2.7.7용 Anaconda 2.0 배포
    • Python 2.7.11용 Anaconda 4.0 배포
    • Python 3.5용 Anaconda 4.0 배포(기본값)

    새 코드를 입력하기 전에 버전을 설정하는 것이 좋습니다. 나중에 버전을 변경하는 경우 변경 사항을 승인하라는 메시지가 표시됩니다.

    중요

    실험에서 Python 스크립트 실행 모듈의 여러 인스턴스를 사용하는 경우 실험의 모든 모듈에 대해 단일 버전의 Python을 선택해야 합니다.

  3. 입력에 사용할 Studio(클래식)의 모든 데이터 세트를 Dataset1 에 추가하고 연결합니다. Python 스크립트에서 이 데이터 세트를 DataFrame1로 참조하세요.

    Python을 사용하여 데이터를 생성하거나 Python 코드를 사용하여 데이터를 모듈로 직접 가져오려는 경우 데이터 세트 사용은 선택 사항입니다.

    이 모듈에서는 Dataset2에 두 번째 Studio(클래식) 데이터 세트를 추가하는 것을 지원합니다. Python 스크립트에서 두 번째 데이터 세트를 DataFrame2로 참조하세요.

    이 모듈을 사용하여 로드하면 Studio(클래식)에 저장된 데이터 세트가 pandas data.frames로 자동으로 변환됩니다.

    Execute Python input map

  4. 새 Python 패키지 또는 코드를 포함하려면 스크립트 번들에 이러한 사용자 지정 리소스가 포함된 압축된 파일을 추가합니다. 스크립트 번들에 대한 입력은 작업 영역에 이미 업로드된 압축 파일이어야 합니다. 이러한 리소스를 준비하고 업로드하는 방법에 대한 자세한 내용은 압축된 데이터 압축 풀기를 참조하세요.

    업로드된 압축된 보관 파일에 포함된 모든 파일은 실험 실행 중에 사용할 수 있습니다. 보관에 디렉터리 구조가 포함된 경우 구조는 유지되지만 경로에 src 라는 디렉터리를 앞에 추가해야 합니다.

  5. Python 스크립트 텍스트 상자에 올바른 Python 스크립트를 입력하거나 붙여넣으세요.

    Python 스크립트 텍스트 상자에는 주석의 몇 가지 지침과 데이터 액세스 및 출력을 위한 샘플 코드가 미리 채워져 있습니다. 이 코드를 편집하거나 바꾸어야 합니다. 들여쓰기 및 대/소문자 구분에 대한 Python 규칙을 따라야 합니다.

    • 이 스크립트는 이 모듈의 진입점으로 azureml_main이라는 함수를 포함해야 합니다.
    • 진입점 함수는 최대 두 개의 입력 인수 Param<dataframe1> 를 포함할 수 있습니다. Param<dataframe2>
    • 세 번째 입력 포트에 연결된 압축된 파일은 압축을 풀고 디렉터리에 저장되며 Python .\Script Bundle에도 sys.path추가됩니다.

    따라서 zip 파일에 포함된 mymodule.py경우 .를 사용하여 import mymodule가져옵니다.

    • 단일 데이터 세트는 형식 pandas.DataFrame의 시퀀스여야 하는 Studio(클래식)로 반환될 수 있습니다. Python 코드에서 다른 출력을 만들고 Azure Storage에 직접 쓰거나 Python 디바이스를 사용하여 시각화를 만들 수 있습니다.
  6. 실험을 실행하거나 모듈을 선택하고 선택한 실행을 클릭하여 Python 스크립트만 실행합니다.

    모든 데이터와 코드는 가상 머신에 로드되고 지정된 Python 환경을 사용하여 실행됩니다.

결과

모듈은 다음 출력을 반환합니다.

  • 결과 데이터 세트. 포함된 Python 코드에서 수행하는 계산 결과는 실험의 다른 모듈과 함께 결과를 사용할 수 있도록 Machine Learning 데이터 세트 형식으로 자동으로 변환되는 pandas data.frame으로 제공되어야 합니다. 모듈은 출력으로 단일 데이터 세트로 제한됩니다. 자세한 내용은 데이터 테이블을 참조하세요.

  • Python 장치.    이 출력은 Python 인터프리터를 사용한 PNG 그래픽의 표시와 콘솔 출력을 모두 지원합니다.

스크립트 리소스를 연결하는 방법

Python 스크립트 실행 모듈은 미리 준비하고 .ZIP 파일의 일부로 작업 영역에 업로드하는 경우 임의 Python 스크립트 파일을 입력으로 지원합니다.

Python 코드가 포함된 ZIP 파일을 작업 영역에 업로드

  1. Machine Learning Studio(클래식)의 실험 영역에서 데이터 세트를 클릭한 다음 새로 만들기를 클릭합니다.

  2. 로컬 파일에서 옵션을 선택합니다.

  3. 새 데이터 세트 업로드 대화 상자에서 새 데이터 세트형식 선택 드롭다운 목록을 클릭하고 Zip 파일(.zip) 옵션을 선택합니다.

  4. 찾아보기를 클릭하여 압축된 파일을 찾습니다.

  5. 작업 영역에서 사용할 새 이름을 입력합니다. 데이터 세트에 할당하는 이름은 포함된 파일이 추출되는 작업 영역의 폴더 이름이 됩니다.

  6. 압축된 패키지를 Studio(클래식)에 업로드한 후 저장된 데이터 세트 목록에서 압축된 파일을 사용할 수 있는지 확인한 다음 데이터 세트를 스크립트 번들 입력 포트에 연결합니다.

    ZIP 파일에 포함된 모든 파일은 런타임 중에 사용할 수 있습니다(예: 샘플 데이터, 스크립트 또는 새 Python 패키지).

    압축된 파일에 Machine Learning Studio(클래식)에 아직 설치되지 않은 라이브러리가 포함된 경우 사용자 지정 스크립트의 일부로 Python 라이브러리 패키지를 설치해야 합니다.

    디렉터리 구조가 있는 경우 보존됩니다. 그러나 디렉터리 src 를 경로 앞에 추가하도록 코드를 변경해야 합니다.

Python 코드 디버깅

Python 스크립트 실행 모듈은 코드가 느슨하게 관련된 실행 문 시퀀스가 아닌 명확하게 정의된 입력 및 출력이 있는 함수로 고려된 경우에 가장 잘 작동합니다.

이 Python 모듈은 Intellisense 및 디버깅과 같은 기능을 지원하지 않습니다. 런타임에 모듈이 실패하는 경우 모듈의 출력 로그에서 몇 가지 오류 세부 정보를 볼 수 있습니다. 그러나 전체 Python 스택 추적은 사용할 수 없습니다. 따라서 사용자가 다른 환경에서 Python 스크립트를 개발 및 디버그한 다음 코드를 모듈로 가져오는 것이 좋습니다.

찾을 수 있는 몇 가지 일반적인 문제:

  • 에서 반환 azureml_main하는 데이터 프레임의 데이터 형식을 확인합니다. 열에 숫자 형식 및 문자열 이외의 데이터 형식이 포함된 경우 오류가 발생할 수 있습니다.

  • Python 스크립트에서 내보내기 시 사용하여 dataframe.dropna() 데이터 세트에서 NA 값을 제거합니다. 데이터를 준비할 때 누락된 데이터 정리 모듈을 사용합니다.

  • 포함된 코드에서 들여쓰기 및 공백 오류를 확인합니다. "IndentationError: 들여쓰기된 블록이 필요합니다."라는 오류가 표시되면 다음 리소스에서 지침을 참조하세요.

알려진 제한 사항

  • Python 런타임은 샌드박스로 처리되며 네트워크 또는 로컬 파일 시스템에 대한 액세스를 영구적으로 허용하지 않습니다.

  • 모듈이 완료되면 로컬에 저장된 모든 파일이 격리되어 삭제됩니다. Python 코드는 현재 디렉터리와 하위 디렉터리를 제외하고, 코드가 실행되는 컴퓨터에 있는 대부분의 디렉터리에 액세스할 수 없습니다.

    압축된 파일을 리소스로 제공하면 파일이 작업 영역에서 실험 실행 공간으로 복사되고 압축을 풀고 사용됩니다. 리소스 복사 및 압축 풀기에서는 메모리를 사용할 수 있습니다.

  • 모듈은 단일 데이터 프레임을 출력할 수 있습니다. 학습된 모델과 같은 임의의 Python 개체를 Studio(클래식) 런타임으로 직접 반환할 수 없습니다. 그러나 스토리지 또는 작업 영역에 개체를 쓸 수 있습니다. 또 다른 옵션은 여러 개체를 바이트 배열로 직렬화한 다음 데이터 프레임 내에서 배열을 반환하는 데 사용하는 pickle 것입니다.

Python 스크립트를 Studio(클래식) 실험과 통합하는 예제는 Azure AI 갤러리에서 다음 리소스를 참조하세요.

추가 정보

R 언어 모듈