Guide: widgetΒΆ
[1]:
import numpy as np
import random
from qiskit.circuit.random import random_circuit
from purplecaffeine.core import BaseStorage, LocalStorage, Trial
from purplecaffeine.widget import Widget
from qiskit.circuit.random import random_circuit
from qiskit.quantum_info.random import random_pauli
from qiskit.primitives import Estimator
[2]:
local_storage = LocalStorage("./trials/")
n_qubits = 4
depth = 10
shots = 2000
[3]:
for i in range(0, 3):
with Trial("Example trial " + str(i), storage=local_storage) as trial:
# track parameter
trial.add_parameter("estimator", "qiskit.primitives.Estimator")
trial.add_parameter("depth", depth)
trial.add_parameter("n_qubits", n_qubits)
trial.add_parameter("shots", shots)
# track circuits
circuit = random_circuit(n_qubits, depth)
trial.add_circuit("circuit", circuit)
trial.add_circuit("another circuit", random_circuit(n_qubits, depth))
# track operators
obs = random_pauli(n_qubits)
trial.add_operator("obs", obs)
for idx in range(5):
trial.add_operator(f"obs {idx}", random_pauli(n_qubits))
# track tags
trial.add_tag(f"tag {i}")
# track texts
trial.add_text("text one", "This text will be displayed in text tab")
trial.add_text("text two", "This text will be displayed in text tab as well")
# run
exp_value = Estimator().run(circuit, obs, shots=shots).result().values.item()
# track history data as metric
for _ in range(100):
trial.add_metric("history", random.randint(0, 10))
# track results as metric
trial.add_metric("exp_value", exp_value)
[4]:
Widget(local_storage).show()
[4]: