保存作业结果 - Amazon Braket

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

保存作业结果

您可以保存算法脚本生成的结果,以便可以从混合作业脚本中的混合作业对象以及 Amazon S3 的输出文件夹(名为 model.tar.gz 的 tar 压缩文件中)获得这些结果。

必须使用 JavaScript 对象表示法 (JSON) 格式将输出保存在文件中。如果无法将数据轻松序列化为文本(例如 numpy 数组),则可以传入一个使用腌制数据格式进行序列化的选项。有关更多详细信息,请参阅 braket.jobs.data_pers isting 模块。

要保存混合作业的结果,请在算法脚本中添加以下用 #ADD 注释的行。

from braket.aws import AwsDevice from braket.circuits import Circuit from braket.jobs import save_job_result #ADD def start_here(): print("Test job started!!!!!") device = AwsDevice(os.environ['AMZN_BRAKET_DEVICE_ARN']) results = [] #ADD bell = Circuit().h(0).cnot(0, 1) for count in range(5): task = device.run(bell, shots=100) print(task.result().measurement_counts) results.append(task.result().measurement_counts) #ADD save_job_result({ "measurement_counts": results }) #ADD print("Test job completed!!!!!")

然后,您可以通过附加带有 #ADD print(job.result())注释的行来显示作业脚本中的作业结果。

import time from braket.aws import AwsQuantumJob job = AwsQuantumJob.create( source_module="algorithm_script.py", entry_point="algorithm_script:start_here", device_arn="arn:aws:braket:::device/quantum-simulator/amazon/sv1", ) print(job.arn) while job.state() not in AwsQuantumJob.TERMINAL_STATES: print(job.state()) time.sleep(10) print(job.state()) print(job.result()) #ADD

在此示例中,我们删除了wait_until_complete=True以抑制详细输出。您可以将其重新添加以进行调试。当你运行这个混合作业时,它会每隔 10 秒输出一次标识符和job-arn,然后是混合作业的状态,然后是混合作业的状态COMPLETED,之后它会向你显示钟形回路的结果。请参阅以下示例。

arn:aws:braket:us-west-2:111122223333:job/braket-job-default-1234567890123 INITIALIZED RUNNING RUNNING RUNNING RUNNING RUNNING RUNNING RUNNING RUNNING RUNNING RUNNING ... RUNNING RUNNING COMPLETED {'measurement_counts': [{'11': 53, '00': 47},..., {'00': 51, '11': 49}]}