Autograd ArrayBox type intermediate output from optimizer

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'>