Hi!
Thank you for your prompt reply. I was trying to export the ratio of the probability outputs from two circuits between cost function evaluations, but later found I could not work with the autograd arrayboxes, something like:
#--------------------------------------------------------
from pennylane import numpy as np
import pennylane as qml
dev0 = qml.device('default.qubit', wires=1)
dev1 = qml.device('default.qubit', wires=1)
@qml.qnode(dev0)
def circuit_0(params,wires=0):
qml.RX(params[0],wires=wires)
return qml.probs(wires=0)
@qml.qnode(dev1)
def circuit_1(params,wires=0):
qml.RX(params[0],wires=wires)
qml.Hadamard(wires=0)
return qml.probs(wires=0)
def cost_fn(params):
cost_0 = sum(circuit_0(params,wires=0))
cost_1 = sum(circuit_1(params,wires=0))
cost_n.append(cost_0/cost_1) # <<<<<<<<<<<<<<<<<<
return -cost_0**2/cost_1
params = [0.0]
max_iterations = 1
step_size=0.01
cost_n = [ ] # <<<<<<<<<<<<<<<<<<
opt = qml.GradientDescentOptimizer(stepsize=step_size)
for n in range(max_iterations):
params = opt.step(cost_fn, params)
print('cost_n =',cost_n, type(cost_n)) # <<<<<<<<<<<<<<<<<<
#--------------------------------------------------------
cost_n = [<autograd.numpy.numpy_boxes.ArrayBox object at 0x000002A12B335840>] <class 'list'>