`seed` in `qml.device("lightning.qubit", ...)` seemingly does nothing
Opened this issue · 0 comments
isaacdevlugt commented
Issue description
The seed
kwarg in device
doesn't do anything for lightning.qubit
. The results below are not fixed by seed
.
-
Expected behavior: Since all sampling behaviour in lightning qubit happens in the C++ layer and PennyLane doesn't use the seed argument to configure that at all, lightning qubit shouldn't accept a
seed
keyword argument (it should be removed). -
Actual behavior: It accepts
seed
and does nothing with it. -
Reproduces how often: 1000%
-
System information:
Name: PennyLane
Version: 0.39.0
Summary: PennyLane is a cross-platform Python library for quantum computing, quantum machine learning, and quantum chemistry. Train a quantum computer the same way as a neural network.
Home-page: https://github.com/PennyLaneAI/pennylane
Author:
Author-email:
License: Apache License 2.0
Location: [/Users/isaac/.virtualenvs/pennylane-catalyst/lib/python3.11/site-packages](https://file+.vscode-resource.vscode-cdn.net/Users/isaac/.virtualenvs/pennylane-catalyst/lib/python3.11/site-packages)
Requires: appdirs, autograd, autoray, cachetools, networkx, numpy, packaging, pennylane-lightning, requests, rustworkx, scipy, toml, typing-extensions
Required-by: PennyLane-Catalyst, PennyLane_Lightning
Platform info: macOS-15.1-arm64-arm-64bit
Python version: 3.11.9
Numpy version: 1.26.4
Scipy version: 1.12.0
Installed devices:
- default.clifford (PennyLane-0.39.0)
- default.gaussian (PennyLane-0.39.0)
- default.mixed (PennyLane-0.39.0)
- default.qubit (PennyLane-0.39.0)
- default.qutrit (PennyLane-0.39.0)
- default.qutrit.mixed (PennyLane-0.39.0)
- default.tensor (PennyLane-0.39.0)
- null.qubit (PennyLane-0.39.0)
- reference.qubit (PennyLane-0.39.0)
- nvidia.custatevec (PennyLane-Catalyst-0.9.0)
- nvidia.cutensornet (PennyLane-Catalyst-0.9.0)
- oqc.cloud (PennyLane-Catalyst-0.9.0)
- softwareq.qpp (PennyLane-Catalyst-0.9.0)
- lightning.qubit (PennyLane_Lightning-0.39.0)
Source code and tracebacks
import pennylane as qml
dev = qml.device("lightning.qubit", wires=4, shots=100, seed=52)
@qml.qnode(dev)
def node():
qml.Hadamard(0)
return qml.expval(qml.Z(0))
for i in range(10):
print(node(4))
-0.16
0.14
0.02
0.06
Additional information
--