ノートブックステップとの間で情報を渡す - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ノートブックステップとの間で情報を渡す

以下のセクションでは、環境変数とパラメータとしてノートブックに情報を渡す方法について説明します。

環境変数を渡す

次の例に示すように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 に存在する場合は、 を使用しますJsonGetJsonGetは、Amazon S3 のJSONファイルから直接データを抽出できる一般的なメカニズムです。

を使用して Amazon S3 のJSONファイルを抽出するにはJsonGet、次の手順を実行します。

  1. 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" )
  2. 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" } )