Trasmetti informazioni da e verso il tuo notebook step - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Trasmetti informazioni da e verso il tuo notebook step

Le sezioni seguenti descrivono i modi per passare informazioni al notebook come variabili e parametri di ambiente.

Passa le variabili di ambiente

Passa le variabili di ambiente come dizionario all'environment_variableargomento del tuoNotebookJobStep, come mostrato nell'esempio seguente:

environment_variables = {"RATE": 0.0001, "BATCH_SIZE": 1000} notebook_job_step = NotebookJobStep( ... environment_variables=environment_variables, ... )

È possibile utilizzare le variabili di ambiente nel notebook utilizzandoos.getenv(), come illustrato nell'esempio seguente:

# inside your notebook import os print(f"ParentNotebook: env_key={os.getenv('env_key')}")

Parametri del passaggio

Quando passate i parametri al primo passaggio di Notebook Job dell'NotebookJobStepistanza, potete opzionalmente etichettare una cella del vostro notebook Jupyter per indicare dove applicare nuovi parametri o sostituzioni di parametri. Per istruzioni su come etichettare una cella nel notebook Jupyter, consulta. Parametrizzare il notebook

I parametri vengono passati tramite il parameters parametro della fase Notebook Job, come illustrato nel seguente frammento:

notebook_job_parameters = { "company": "Amazon", } notebook_job_step = NotebookJobStep( ... parameters=notebook_job_parameters, ... )

All'interno del notebook di input, i parametri vengono applicati dopo la cella contrassegnata con parameters o all'inizio del taccuino se non si dispone di una cella con tag.

# 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}')

Recupera le informazioni da un passaggio precedente

La discussione seguente spiega come estrarre i dati da un passaggio precedente per passarli alla fase Notebook Job.

Usa l'propertiesattributo

È possibile utilizzare le seguenti proprietà con l'propertiesattributo del passaggio precedente:

  • ComputingJobName—Il nome del lavoro di formazione

  • ComputingJobStatus—Lo stato del lavoro di formazione

  • NotebookJobInputLocation—La posizione Amazon S3 di input

  • NotebookJobOutputLocationPrefix—Il percorso verso i risultati del lavoro di formazione, in particolare, contenente gli output {NotebookJobOutputLocationPrefix}/{training-job-name}/output/output.tar.gz

  • InputNotebookName—Il nome del file del taccuino di input

  • OutputNotebookName—Il nome del file del taccuino di output (che potrebbe non esistere nella cartella di output del training job se il lavoro fallisce)

Il seguente frammento di codice mostra come estrarre i parametri dall'attributo properties.

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, }

Usa JsonGet

Se desideri passare parametri diversi da quelli menzionati in precedenza e JSON gli output del passaggio precedente risiedono in Amazon S3, utilizza. JsonGet JsonGetè un meccanismo generale in grado di estrarre direttamente i dati dai JSON file in Amazon S3.

Per estrarre JSON file in Amazon S3 conJsonGet, completa i seguenti passaggi:

  1. Carica il tuo JSON file su Amazon S3. Se i tuoi dati sono già caricati su Amazon S3, salta questo passaggio. L'esempio seguente mostra il caricamento di un JSON file su Amazon S3.

    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. Fornisci il tuo S3 URI e il JSON percorso verso il valore che desideri estrarre. Nell'esempio seguente, JsonGet restituisce un oggetto che rappresenta l'indice 2 del valore associato a key key2 (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" } )