Pencatatan lanjutan dengan Amazon Braket - Amazon Braket

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pencatatan lanjutan dengan Amazon Braket

Anda dapat merekam seluruh proses pengolahan tugas menggunakan logger. Teknik pencatatan lanjutan ini mengizinkan Anda melihat jajak pendapat latar belakang dan membuat catatan untuk debugging nanti.

Untuk menggunakan logger, kami sarankan untuk mengubah poll_interval_seconds parameter poll_timeout_seconds dan, sehingga tugas kuantum dapat berjalan lama dan status tugas kuantum dicatat terus menerus, dengan hasil disimpan ke file. Anda dapat mentransfer kode ini ke penulisan Python bukan notebook Jupyter, sehingga penulisan dapat berjalan sebagai proses di latar belakang.

Konfigurasikan logger

Pertama, konfigurasikan logger sehingga semua catatan ditulis ke dalam file teks secara otomatis, seperti yang ditunjukkan pada baris contoh berikut.

# import the module import logging from datetime import datetime # set filename for logs log_file = 'device_logs-'+datetime.strftime(datetime.now(), '%Y%m%d%H%M%S')+'.txt' print('Task info will be logged in:', log_file) # create new logger object logger = logging.getLogger("newLogger") # configure to log to file device_logs.txt in the appending mode logger.addHandler(logging.FileHandler(filename=log_file, mode='a')) # add to file all log messages with level DEBUG or above logger.setLevel(logging.DEBUG)
Task info will be logged in: device_logs-20200803203309.txt

Buat dan jalankan sirkuit

Sekarang Anda dapat membuat sirkuit, mengirimkannya ke perangkat untuk dijalankan, dan melihat apa yang terjadi seperti yang ditunjukkan dalam contoh ini.

# define circuit circ_log = Circuit().rx(0, 0.15).ry(1, 0.2).rz(2, 0.25).h(3).cnot(control=0, target=2).zz(1, 3, 0.15).x(4) print(circ_log) # define backend device = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/sv1") # define what info to log logger.info( device.run(circ_log, s3_location, poll_timeout_seconds=1200, poll_interval_seconds=0.25, logger=logger, shots=1000) .result().measurement_counts )

Periksa file log

Anda dapat memeriksa apa yang tertulis ke dalam file dengan memasukkan perintah berikut.

# print logs ! cat {log_file}
Task arn:aws:braket:us-west-2:123412341234:quantum-task/5088ec6c-89cf-4338-9750-9f5bb12a0dc4: start polling for completion Task arn:aws:braket:us-west-2:123412341234:quantum-task/5088ec6c-89cf-4338-9750-9f5bb12a0dc4: task status CREATED Task arn:aws:braket:us-west-2:123412341234:quantum-task/5088ec6c-89cf-4338-9750-9f5bb12a0dc4: task status CREATED Task arn:aws:braket:us-west-2:123412341234:quantum-task/5088ec6c-89cf-4338-9750-9f5bb12a0dc4: task status QUEUED Task arn:aws:braket:us-west-2:123412341234:quantum-task/5088ec6c-89cf-4338-9750-9f5bb12a0dc4: task status RUNNING Task arn:aws:braket:us-west-2:123412341234:quantum-task/5088ec6c-89cf-4338-9750-9f5bb12a0dc4: task status RUNNING Task arn:aws:braket:us-west-2:123412341234:quantum-task/5088ec6c-89cf-4338-9750-9f5bb12a0dc4: task status COMPLETED Counter({'00001': 493, '00011': 493, '01001': 5, '10111': 4, '01011': 3, '10101': 2})

Dapatkan ARN dari file log

Dari output file log yang dikembalikan, seperti yang ditunjukkan pada contoh sebelumnya, Anda dapat memperoleh ARN informasi. Dengan ARN ID, Anda dapat mengambil hasil dari tugas kuantum yang diselesaikan.

# parse log file for arn with open(log_file) as openfile: for line in openfile: for part in line.split(): if "arn:" in part: arn = part break # remove final semicolon in logs arn = arn[:-1] # with this arn you can restore again task from unique arn task_load = AwsQuantumTask(arn=arn, aws_session=AwsSession()) # get results of task result = task_load.result()