기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
노트북 단계와 정보 주고받기
다음 섹션에서는 정보를 노트북에 환경 변수 및 파라미터로 전달하는 방법을 설명합니다.
환경 변수 전달
다음 예시와 같이 환경 변수를 NotebookJobStep
의 environment_variable
인수에 딕셔너리로 전달합니다.
environment_variables = {"RATE": 0.0001, "BATCH_SIZE": 1000} notebook_job_step = NotebookJobStep( ... environment_variables=environment_variables, ... )
다음 예시와 같이 os.getenv()
를 사용하여 노트북의 환경 변수를 사용할 수 있습니다.
# inside your notebook import os print(f"ParentNotebook: env_key={os.getenv('env_key')}")
파라미터 전달
NotebookJobStep
인스턴스의 첫 번째 노트북 작업 단계에 파라미터를 전달할 때 Jupyter Notebook의 셀에 태그를 지정하여 새 파라미터 또는 파라미터 재정의를 적용할 위치를 표시할 수도 있습니다. Jupyter Notebook에서 셀에 태그를 지정하는 방법에 대한 지침은 노트북 파라미터화 섹션을 참조하세요.
다음 코드 조각과 같이 노트북 작업 단계의 parameters
파라미터를 통해 파라미터를 전달합니다.
notebook_job_parameters = { "company": "Amazon", } notebook_job_step = NotebookJobStep( ... parameters=notebook_job_parameters, ... )
입력 노트북 내에서 파라미터는 parameters
태그가 지정된 셀 뒤에 또는 태그가 지정된 셀이 없는 경우 노트북의 시작 부분에 적용됩니다.
# this cell is in your input notebook and is tagged with 'parameters' # your parameters and parameter overrides are applied after this cell company='default'
# in this cell, your parameters are applied # prints "company is Amazon" print(f'company is {company}')
이전 단계에서 정보 검색
다음 논의에서는 이전 단계에서 데이터를 추출하여 노트북 작업 단계로 전달하는 방법을 설명합니다.
properties
속성 사용
이전 단계의 properties
속성과 함께 다음 속성을 사용할 수 있습니다.
-
ComputingJobName
- 훈련 작업 이름 -
ComputingJobStatus
- 훈련 작업 상태 -
NotebookJobInputLocation
- 입력 Amazon S3 위치 -
NotebookJobOutputLocationPrefix
- 훈련 작업 출력의 경로. 구체적으로{
. 출력 포함NotebookJobOutputLocationPrefix
}/{training-job-name
}/output/output.tar.gz -
InputNotebookName
- 입력 노트북 파일 이름 -
OutputNotebookName
- 출력 노트북 파일 이름(작업이 실패할 경우 훈련 작업 출력 폴더에 없을 수 있음)
다음 코드 조각은 속성 속성에서 파라미터를 추출하는 방법을 보여줍니다.
notebook_job_step2 = NotebookJobStep( .... parameters={ "step1_JobName": notebook_job_step1.properties.ComputingJobName, "step1_JobStatus": notebook_job_step1.properties.ComputingJobStatus, "step1_NotebookJobInput": notebook_job_step1.properties.NotebookJobInputLocation, "step1_NotebookJobOutput": notebook_job_step1.properties.NotebookJobOutputLocationPrefix, }
JsonGet 사용
앞서 언급한 파라미터 이외의 파라미터를 전달하고 이전 단계의 JSON 출력이 Amazon S3에 있는 경우 JsonGet
을 사용합니다. JsonGet
은 Amazon S3의 JSON 파일에서 데이터를 직접 추출할 수 있는 일반적인 메커니즘입니다.
JsonGet
을 사용하여 Amazon S3에서 JSON 파일을 추출하려면 다음 단계를 완료하세요.
-
Amazon S3에 JSON 파일을 업로드합니다. 데이터가 이미 Amazon S3에 업로드된 경우 이 단계를 건너뜁니다. 다음 예시에서는 Amazon S3에 JSON 파일을 업로드하는 방법을 보여줍니다.
import json from sagemaker.s3 import S3Uploader output = { "key1": "value1", "key2": [0,5,10] } json_output = json.dumps(output) with open("notebook_job_params.json", "w") as file: file.write(json_output) S3Uploader.upload( local_path="notebook_job_params.json", desired_s3_uri="s3://
path
/to
/bucket
" ) -
추출하려는 값에 대한 S3 URI 및 JSON 경로를 제공합니다. 다음 예시에서
JsonGet
은 키key2
(10
)와 연결된 값의 인덱스 2를 나타내는 객체를 반환합니다.NotebookJobStep( .... parameters={ # the key job_key1 returns an object representing the value 10 "job_key1": JsonGet( s3_uri=Join(on="/", values=["s3:/", ..]), json_path="key2[2]" # value to reference in that json file ), "job_key2": "Amazon" } )