Hi! I would like to construct a circuit like this (see the image attached).
I would like the Rot gate to receive parameter W*X + B, where W is a 3x3 numpy matrix, X and B is 3x1 numpy matrix. So in the code attached, params = [W, B]
When I run the circuit, I got this error message:
TypeError: unsupported operand type(s) for +: ‘Variable’ and ‘Variable’
It seems PennyLane’s ‘Variable’ object does not support addition operation (‘+’). Is there any other way to do this?
That’s a good question! Indeed, a previous limitation of PennyLane has been that trainable parameters cannot be combined within a QNode.
Luckily we have recently refactored the backend of PennyLane to now support more arbitrary variable handling. This new approach is called tape mode and can be accessed by running
qml.enable_tape() just after your imports. Otherwise, no change should be required.
Hope this works, if not let us know!
It works well, thanks a lot. I never knew this ‘tape mode’ before, thanks.