Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
PennyLane ist ein Open-Source-Python Framework für die Quantenprogrammierung. Mit dem MicrosoftQuantum Development Kit (QDK) können Sie ein Quantenprogramm in PennyLane schreiben, das Programm in QIR konvertieren und dann den QIR übermitteln, um auf Azure Quantum Zielen auszuführen. In diesem Artikel wird gezeigt, wie Sie ein PennyLane-Programm von einem Jupyter-Notizbuch in Visual Studio Code (VS Code) an Azure Quantum übermitteln.
Weitere Informationen zu PennyLane finden Sie auf der PennyLane-Website.
Voraussetzungen
Zum Übermitteln eines PennyLane-Programms zum Azure Quantum mithilfe der QDKPython-Bibliothek müssen Sie über einen Azure Quantum Arbeitsbereich in Ihrem Azure-Abonnement verfügen. Zur Erstellung eines Arbeitsbereichs, siehe bitte Erstellen eines Azure Quantum Arbeitsbereichs.
Um die Schritte in diesem Artikel auszuführen, müssen Sie folgendes haben:
Eine Python-Umgebung mit Python und Pip.
Die neueste Version der
qdkPython-Bibliothek mit derazure-Erweiterung.pip install --upgrade "qdk[azure]"Die neueste Version der PennyLanePython Bibliothek.
pip install --upgrade "pennylane"
Übermitteln eines PennyLane-Programms an Azure Quantum als QIR
In den folgenden Schritten wird erläutert, wie Sie ein
Importieren der erforderlichen Pakete und Objekte
Öffnen Sie im VS Code das Menü "Ansicht" , und wählen Sie "Befehlspalette" aus.
Geben Sie Erstellen: Neues Jupyter-Notizbuch ein. Ein leeres Jupyter-Notizbuch wird auf einer neuen Registerkarte geöffnet.
Führen Sie in der ersten Zelle des Notizbuchs die folgenden Importe aus:
import pennylane as qml from qdk.openqasm import compile from qdk.azure import Workspace from qdk import TargetProfile
Erstellen einer PennyLane Schaltung
Führen Sie den folgenden Code in einer neuen Zelle aus, um einen parametrisierten Schaltkreis namens PennyLane zu erstellen:
device = qml.device('default.qubit', wires=2) @qml.qnode(device) def param_circ(theta): qml.H(0); qml.CNOT(wires=[0,1]) qml.RY(theta, wires=1) return qml.expval(qml.PauliZ(1))Dieser Schaltkreis verwendet den Parameter
theta, um eine Drehung mit demRYGate anzuwenden.Zeichnen Sie den Schaltkreis für einen bestimmten Wert von
theta, z. B0.3. . .print(qml.draw(param_circ)(0.3))
Konvertieren des PennyLane Programms in QIR
Um das programm PennyLane an Azure Quantum zu übermitteln, müssen Sie das Programm in OpenQASM konvertieren und dann den OpenQASM in QIR konvertieren.
Konvertieren Sie das PennyLane Programm in OpenQASM.
qasm_str = qml.to_openqasm(param_circ)(theta)Legen Sie ein QIR Zielprofil fest, und konvertieren Sie es OpenQASM in QIR.
target_profile = TargetProfile.Base qir = compile(qasm_str, target_profile)Hinweis
Das Zielprofil muss mit dem Azure Quantum Ziel kompatibel sein, an das Sie Ihren Auftrag übermitteln. Weitere Informationen zu QIR Zielprofilen finden Sie unter Differente Typen von Zielprofilen in Azure Quantum.
Verbindung mit Ihrem Azure Quantum Arbeitsbereich herstellen
Um eine Verbindung mit Ihrem Azure Quantum Arbeitsbereich herzustellen, benötigen Sie die Ressourcen-ID des Arbeitsbereichs. Führen Sie die folgenden Schritte aus, um die Ressourcen-ID zu finden:
- Melden Sie sich beim Azure-Portal an.
- Wechseln Sie zu Ihrem Azure Quantum-Arbeitsbereich.
- Öffnen Sie den Bereich "Übersicht ".
- Kopieren Sie den Wert im Feld "Ressourcen-ID ".
Um eine Verbindung mit Ihrem Arbeitsbereich herzustellen, führen Sie den folgenden Code in Ihrem Jupyter-Notizbuch aus:
workspace = Workspace(resource_id="") # Add the resource ID of your workspace
Übermitteln des Programms an Azure Quantum
Legen Sie Ihre Auftragsparameter fest, einschließlich des Azure Quantum Zielnamens und der Anzahl der Aufnahmen. In diesem Beispiel ist das Ziel der kostenlose Rigetti-Simulator.
# Define parameters for the job submission target_name = 'rigetti.sim.qvm' job_name = 'pennylane-job' shots = 100 # Define parameter for the circuit theta = 0.3Hinweis
Sie können nur an Azure Quantum Ziele übermitteln, die in Ihrem Arbeitsbereich verfügbar sind. Um Ihre verfügbaren Ziele anzuzeigen, wechseln Sie im Azure Portal zum Bereich Providers.
Legen Sie das Ziel fest, und führen Sie den Auftrag aus.
target = workspace.get_targets(target_name) job = target.submit(qir, job_name, shots)Jobergebnisse anzeigen.
results = job.get_results() print(results)
Verwandte Inhalte
- Wie man Qiskit-Programme an Azure Quantum übermittelt mit QDK
Wie ein Cirq-Schaltkreis an Azure Quantum