Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Transmission d’informations vers et depuis votre étape de bloc-notes
Les sections suivantes décrivent les méthodes permettant de transmettre des informations à votre bloc-notes sous forme de variables et de paramètres d’environnement.
Transmission de variables d’environnement
Transmettez des variables d’environnement sous forme de dictionnaire à l’argument environment_variable de votre NotebookJobStep, comme indiqué dans l’exemple suivant :
environment_variables = {"RATE": 0.0001, "BATCH_SIZE": 1000} notebook_job_step = NotebookJobStep( ... environment_variables=environment_variables, ... )
Vous pouvez utiliser les variables d’environnement dans le bloc-notes en utilisant os.getenv(), comme illustré dans l’exemple suivant :
# inside your notebook import os print(f"ParentNotebook: env_key={os.getenv('env_key')}")
Transmission de paramètres
Lorsque vous transmettez des paramètres à la première étape de tâche de bloc-notes dans votre instance NotebookJobStep, vous pouvez éventuellement vouloir baliser une cellule dans votre bloc-notes Jupyter pour indiquer où appliquer les nouveaux paramètres ou les remplacements de paramètres. Pour obtenir des instructions de balisage d’une cellule dans votre bloc-notes Jupyter, consultez Paramétrer votre bloc-notes.
Vous transmettez les paramètres via le paramètre parameters de l’étape de tâche de bloc-notes, comme illustré dans l’extrait de code suivant :
notebook_job_parameters = { "company": "Amazon", } notebook_job_step = NotebookJobStep( ... parameters=notebook_job_parameters, ... )
Dans votre bloc-notes d’entrée, vos paramètres sont appliqués après la cellule balisée par parameters ou au début du bloc-notes si aucune cellule n’est balisée.
# 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}')
Extraction d’informations depuis une étape précédente
La discussion suivante explique comment extraire des données d’une étape précédente pour les transmettre à votre étape de tâche de bloc-notes.
Utilisation de l’attribut properties
Vous pouvez utiliser les propriétés suivantes avec l’attribut properties de l’étape précédente :
-
ComputingJobName: nom de la tâche d’entraînement -
ComputingJobStatus: statut de la tâche d’entraînement -
NotebookJobInputLocation: emplacement Amazon S3 d’entrée -
NotebookJobOutputLocationPrefix: chemin vers les résultats de votre tâche d’entraînement, plus précisément vers{, contenant les résultatsNotebookJobOutputLocationPrefix}/{training-job-name}/output/output.tar.gz -
InputNotebookName: nom de fichier du bloc-notes en entrée -
OutputNotebookName: nom de fichier du bloc-notes de sortie (qui n’existe peut-être pas dans le dossier de sortie de la tâche d’entraînement en cas d’échec de la tâche)
L’extrait de code suivant montre comment extraire des paramètres de l’attribut 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, }
Utilisez JsonGet
Si vous souhaitez transmettre des paramètres autres que ceux mentionnés précédemment et que les sorties JSON de votre étape précédente se trouvent dans Amazon S3, utilisez JsonGet. JsonGet est un mécanisme général capable d’extraire directement des données de fichiers JSON dans Amazon S3.
Pour extraire des fichiers JSON dans Amazon S3 avec JsonGet, procédez comme suit :
-
Chargez votre fichier JSON sur Amazon S3. Si vos données sont déjà chargées sur Amazon S3, ignorez cette étape. L’exemple suivant montre le chargement d’un fichier JSON sur 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" ) -
Indiquez votre URI S3 et le chemin JSON vers la valeur que vous souhaitez extraire. Dans l’exemple suivant,
JsonGetrenvoie un objet représentant l’index 2 de la valeur associée à la clé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" } )