Thanks!
Is the following behaviour because the qiskit backend only supports measurements in the computational basis?
In:
N = 2
dev = qml.device(‘qiskit.basicaer’, wires=N)
@qml.qnode(dev)
def circuit(z):
qml.RZ(z, wires=[0])
qml.RZ(z*-1, wires=[0])
return qml.expval.PauliZ(wires=1)
circuit(0.2)
Out:
1.0
In:
import pennylane as qml
N = 2
dev = qml.device(‘qiskit.basicaer’, wires=N)
@qml.qnode(dev)
def circuit(z):
qml.RZ(z, wires=[0])
qml.RZ(z*-1, wires=[0])
return qml.expval.PauliX(wires=1)
circuit(0.2)
Out:
TypeError Traceback (most recent call last)
in
7 qml.RZ(z*-1, wires=[0])
8 return qml.expval.PauliX(wires=1)
----> 9 circuit(0.2)
~/anaconda3/envs/vqa/lib/python3.6/site-packages/PennyLane-0.3.1-py3.6.egg/pennylane/decorator.py in wrapper(*args, **kwargs)
151 def wrapper(*args, **kwargs):
152 “”“Wrapper function”""
–> 153 return qnode(*args, **kwargs)
154
155 # bind the jacobian method to the wrapped function
~/anaconda3/envs/vqa/lib/python3.6/site-packages/PennyLane-0.3.1-py3.6.egg/pennylane/qnode.py in call(self, *args, **kwargs)
455 # pylint: disable=no-member
456 args = autograd.builtins.tuple(args) # prevents autograd boxed arguments from going through to evaluate
–> 457 return self.evaluate(args, **kwargs) # args as one tuple
458
459 @ae.primitive
~/anaconda3/envs/vqa/lib/python3.6/site-packages/autograd-1.2-py3.6.egg/autograd/tracer.py in f_wrapped(*args, **kwargs)
46 return new_box(ans, trace, node)
47 else:
—> 48 return f_raw(*args, **kwargs)
49 f_wrapped.fun = f_raw
50 f_wrapped._is_autograd_primitive = True
~/anaconda3/envs/vqa/lib/python3.6/site-packages/PennyLane-0.3.1-py3.6.egg/pennylane/qnode.py in evaluate(self, args, **kwargs)
511
512 ret = self.device.execute(self.queue, self.ev)
–> 513 return self.output_type(ret)
514
515 def evaluate_obs(self, obs, args, **kwargs):
TypeError: float() argument must be a string or a number, not ‘NoneType’