本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
輸入、輸出、環境變數和輔助函數
除了構成完整演算法指令碼的檔案或檔案之外,混合式工作還可以有其他輸入和輸出。當您的混合式工作開始時,AmazonBraket 會將作為混合作業建立一部分提供的輸入複製到執行演算法指令碼的容器中。混合任務完成後,演算法期間定義的所有輸出都會複製到指定的 Amazon S3 位置。
注意
演算法度量會即時報告,且不要遵循此輸出程序。
AmazonBraket 還提供了幾個環境變量和輔助函數,以簡化與容器輸入和輸出的交互。
本節說明的主要概念AwsQuantumJob.create
由提供的功能Amazon將 Python SDK 及其映射到容器文件結構。
輸入
輸入數據:輸入數據可以通過指定輸入數據文件提供給混合算法,該文件設置為字典,input_data
參數。使用者定義input_data
在的引數AwsQuantumJob.create
SDK 中的功能。這將輸入數據複製到容器文件系統由環境變量給定的位置"AMZN_BRAKET_INPUT_DIR"
。如需如何在混合演算法中使用輸入資料的幾個範例,請參閱QAOA 與 Amazon Braket 混合工作和 PennyLane
注意
當輸入資料較大 (>1GB) 時,在提交混合工作之前會有很長的等待時間。這是因為本機輸入資料會先上傳到 S3 儲存貯體,然後 S3 路徑會新增至混合任務請求,最後將混合任務請求提交至 Braket 服務。
超參數:如果您傳入hyperparameters
,它們可以在環境變量下使用"AMZN_BRAKET_HP_FILE"
。
檢查站:若要指定job-arn
您要在新的混合工作中使用其檢查點,請使用copy_checkpoints_from_job
指令。此命令將檢查點資料複製到checkpoint_configs3Uri
的新混合作業,使其可用於由環境變數指定的路徑AMZN_BRAKET_CHECKPOINT_DIR
工作執行時。預設為 。None
,表示新的混合式工作不會使用來自另一個混合工作的檢查點資料。
輸出
量子任務:量子任務結果存放在指定的 S3 位置output_data_config
。如果您未指定此值,則預設為s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/tasks
。
Job 結果:您的算法腳本保存到環境變量給定的目錄中的所有內容"AMZN_BRAKET_JOB_RESULTS_DIR"
被複製到的 S3 位置output_data_config
。如果您未指定此值,則預設為s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/data
。我們提供 SDK 輔助功能 save_job_result
,當從算法腳本調用時,您可以使用它以字典的形式方便地存儲結果。
檢查站:如果要使用檢查點,可以將它們保存在環境變量給出的目錄中"AMZN_BRAKET_CHECKPOINT_DIR"
。您也可以使用 SDK 輔助函數save_job_checkpoint
取消。
演算法度量:您可以將演算法指標定義為發送至 Amazon 的演算法指令碼的一部分 CloudWatch 並即時顯示於Amazon當您的混合任務正在運行時,Braket 控制台。如需如何使用演算法指標的範例,請參閱使用 Amazon Braket 譯器混合任務執行 QAOA 演算法 _。
環境變數
AmazonBraket 提供了幾個環境變量,以簡化與容器輸入和輸出的交互。下面的代碼列出了 Braket 使用的環境變量。
# the input data directory opt/braket/input/data os.environ["AMZN_BRAKET_INPUT_DIR"] # the output directory opt/braket/model to write job results to os.environ["AMZN_BRAKET_JOB_RESULTS_DIR"] # the name of the job os.environ["AMZN_BRAKET_JOB_NAME"] # the checkpoint directory os.environ["AMZN_BRAKET_CHECKPOINT_DIR"] # the file containing the hyperparameters os.environ["AMZN_BRAKET_HP_FILE"] # the device ARN (AWS Resource Name) os.environ["AMZN_BRAKET_DEVICE_ARN"] # the output S3 bucket, as specified in the CreateJob request’s OutputDataConfig os.environ["AMZN_BRAKET_OUT_S3_BUCKET"] # the entry point as specified in the CreateJob request’s ScriptModeConfig os.environ["AMZN_BRAKET_SCRIPT_ENTRY_POINT"] # the compression type as specified in the CreateJob request’s ScriptModeConfig os.environ["AMZN_BRAKET_SCRIPT_COMPRESSION_TYPE"] # the S3 location of the user’s script as specified in the CreateJob request’s ScriptModeConfig os.environ["AMZN_BRAKET_SCRIPT_S3_URI"] # the S3 location where the SDK would store the quantum task results by default for the job os.environ["AMZN_BRAKET_TASK_RESULTS_S3_URI"] # the S3 location where the job results would be stored, as specified in CreateJob request’s OutputDataConfig os.environ["AMZN_BRAKET_JOB_RESULTS_S3_PATH"] # the string that should be passed to CreateQuantumTask’s jobToken parameter for quantum tasks created in the job container os.environ["AMZN_BRAKET_JOB_TOKEN"]
輔助函數
AmazonBraket 提供了幾個輔助功能,以簡化與容器輸入和輸出的相互作用。這些輔助函數將從用於運行混合 Job 的算法腳本中調用。以下範例顯示如何使用它們。
save_job_result() # helper function to save your job results save_job_checkpoint() # helper function to save checkpoints load_job_checkpoint() # helper function to load a previously saved job checkpoints