翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ノートブックステップとの間で情報を渡す
以下のセクションでは、環境変数とパラメータとしてノートブックに情報を渡す方法について説明します。
環境変数を渡す
次の例に示すように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 ノートブック内のセルにタグを付けて、新しいパラメータまたはパラメータオーバーライドを適用する場所を示すことができます。Jupyter ノートブック内のセルにタグを付ける方法については、「」を参照してくださいノートブックをパラメータ化する。
次のスニペットに示すように、ノートブックジョブステップの 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ファイルから直接データを抽出できる一般的なメカニズムです。
を使用して Amazon S3 のJSONファイルを抽出するにはJsonGet
、次の手順を実行します。
-
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パスを指定します。次の例では、 はキー
key2
() に関連付けられた値のインデックス 2 を表すオブジェクトJsonGet
を返します10
。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" } )