Jak przesyłać programy w języku Q# za pomocą programu Visual Studio Code
Dowiedz się, jak za pomocą programu Visual Studio Code tworzyć i przesyłać programy w języku Q# do rzeczywistego sprzętu kwantowego. Zadania obliczeń kwantowych można przesłać do usługi Azure Quantum jako autonomiczny program języka Q#, połączyć język Q# z językiem Python w projekcie języka Q# i uruchomić notes Jupyter Notebook.
Przesyłanie zadań języka Q# do usługi Azure Quantum
Dowiedz się, jak używać programu VS Code do uruchamiania, debugowania i przesyłania programu Q# do usługi Azure Quantum.
Wymagania wstępne
Aby uzyskać szczegółowe informacje na temat instalacji, zobacz Instalowanie zestawu QDK w programie VS Code.
- Obszar roboczy usługi Azure Quantum w ramach subskrypcji platformy Azure. Aby utworzyć obszar roboczy, zobacz Tworzenie obszaru roboczego usługi Azure Quantum.
- Najnowsza wersja programu Visual Studio Code lub otwórz program VS Code w sieci Web.
- Najnowsza wersja rozszerzenia zestawu Azure Quantum Development Kit.
Ładowanie przykładowego programu w języku Q#
W programie VS Code wybierz pozycję Plik nowy plik tekstowy i zapisz plik jako RandomNum.qs>.
Otwórz plik RandomNum.qs i wpisz
sample
, a następnie wybierz pozycję Próbka losowego bitu z listy opcji i zapisz plik.
Uwaga
Możesz również otworzyć własny plik języka Q#. Jeśli uruchomisz starszy program w języku Q# i wystąpią błędy, zobacz Testowanie i debugowanie.
Uruchamianie programu w języku Q#
Aby przetestować uruchamianie programu lokalnie na wbudowanym symulatorze, kliknij pozycję Uruchom z listy poleceń obok operacji punktu wejścia lub naciśnij Ctrl+F5. Dane wyjściowe zostaną wyświetlone w konsoli debugowania.
Aby debugować program przed przesłaniem go do usługi Azure Quantum, kliknij pozycję Debuguj z listy poleceń obok operacji punktu wejścia lub naciśnij F5. Użyj kontrolek debugowania u góry, aby przejść do i z kodu. Aby uzyskać więcej informacji na temat debugowania programów języka Q#, zobacz Testowanie i debugowanie.
Wizualizowanie histogramu częstotliwości
Histogram częstotliwości reprezentuje rozkład wyników uzyskanych z wielokrotnego uruchamiania programu kwantowego lub "strzałów". Każdy słupek w histogramie odpowiada możliwemu wynikowi, a jego wysokość reprezentuje liczbę obserwowanych wyników. Histogram częstotliwości pomaga wizualizować rozkład prawdopodobieństwa tych wyników.
Wybierz pozycję Widok —> paleta poleceń i wpisz "histogram", który powinien wyświetlić opcję Q#: Uruchom plik i pokaż histogram . Możesz również kliknąć pozycję Histogram z listy poleceń obok operacji punktu wejścia. Wybierz tę opcję, aby otworzyć okno histogramu języka Q#.
Wprowadź liczbę zdjęć do wykonania programu, na przykład 100 zdjęć, a następnie naciśnij Enter. Histogram zostanie wyświetlony w oknie histogramu języka Q#.
Kliknij ikonę ustawień w lewym górnym rogu, aby wyświetlić opcje.
Kliknij pasek, aby wyświetlić procent tego wyniku. W tym przypadku istnieją dwa możliwe wyniki, 0 i 1, a procent każdego wyniku jest zbliżony do 50%.
Napiwek
Histogram można powiększyć za pomocą kółka przewijania myszy lub gestu klawiatury. Po powiększeniu można przesuwać wykres, naciskając "Alt" podczas przewijania.
Wizualizowanie obwodu kwantowego
Diagramy obwodów kwantowych to wizualna reprezentacja operacji kwantowych. Pokazują one przepływ kubitów za pośrednictwem programu kwantowego, w tym bram i pomiarów zastosowanych do nich. Aby uzyskać więcej informacji, zobacz Diagramy obwodów kwantowych w programie Visual Studio Code.
Wybierz pozycję Widok —> paleta poleceń i wpisz "circuit", który powinien wyświetlić opcję Q#: Pokaż obwód . Możesz również kliknąć pozycję Obwód z listy poleceń obok operacji punktu wejścia.
Obwód jest wyświetlany w oknie obwodu języka Q#. Diagram obwodu przedstawia jeden rejestr kubitów, który został zainicjowany do stanu |0⟩. Następnie brama Hadamarda, H, jest stosowana do kubitu, a następnie przez operację pomiaru, która jest reprezentowana przez symbol miernika. Aby uzyskać więcej informacji, zobacz Konwencje obwodów kwantowych.
Nawiązywanie połączenia z usługą Azure Quantum i przesyłanie zadania
Zadania można łączyć i przesyłać bezpośrednio z programu VS Code. W tym przykładzie prześlesz zadanie do symulatora Rigetti.
Wybierz pozycję Widok —> paleta poleceń i wpisz Q#: Połącz się z obszarem roboczym usługi Azure Quantum. Naciśnij klawisz Enter.
Wybierz pozycję Konto platformy Azure i postępuj zgodnie z monitami, aby nawiązać połączenie z preferowanym katalogiem, subskrypcją i obszarem roboczym.
Uwaga
Jeśli masz parametry połączenia, możesz wybrać pozycję Parametry połączenia i wkleić parametry połączenia odpowiadające obszarowi roboczemu usługi Azure Quantum. Aby uzyskać więcej informacji, zobacz Connect to a Quantum workspace using a parametry połączenia (Nawiązywanie połączenia z obszarem roboczym Quantum przy użyciu parametry połączenia).
Po nawiązaniu połączenia w okienku Eksplorator rozwiń węzeł Obszary robocze kwantowe.
Rozwiń obszar roboczy i rozwiń dostawcę Rigetti .
Uwaga
Jeśli występuje problem podczas nawiązywania połączenia z usługą Azure Quantum, obok nazwy obszaru roboczego zostanie wyświetlona ikona ostrzeżenia. Umieść kursor nad nazwą obszaru roboczego, aby wyświetlić informacje o błędzie.
Wybierz plik rigetti.sim.qvm jako plik target.
Wybierz ikonę odtwarzania po prawej stronie target nazwy, aby rozpocząć przesyłanie bieżącego programu w języku Q#. Jeśli zostanie wyświetlone okno podręczne, wybierz pozycję Zmień profil QIR target i kontynuuj.
Dodaj nazwę, aby zidentyfikować zadanie.
Dodaj liczbę zdjęć lub liczbę uruchomień programu.
Naciśnij Enter, aby przesłać zadanie. Stan zadania zostanie wyświetlony w dolnej części ekranu.
Rozwiń węzeł Zadania i umieść kursor nad zadaniem, co spowoduje wyświetlenie czasów i stanu zadania.
Aby wyświetlić wyniki, wybierz ikonę chmury obok nazwy zadania, aby pobrać wyniki z magazynu obszaru roboczego i wyświetlić je w programie VS Code.
Przesyłanie zadań notesów Jupyter Notebook do usługi Azure Quantum
Dowiedz się, jak używać programu VS Code do uruchamiania, debugowania i przesyłania notesu Jupyter Notebook języka Q# do usługi Azure Quantum. Kroki opisane w tym artykule dotyczą również notesów Jupyter Notebook na lokalnym serwerze Jupyter lub notesach w witrynie Azure Quantum Portal.
Wymagania wstępne
Aby uzyskać szczegółowe informacje na temat instalacji, zobacz Instalowanie zestawu QDK w programie VS Code.
Obszar roboczy usługi Azure Quantum w ramach subskrypcji platformy Azure. Aby utworzyć obszar roboczy, zobacz Tworzenie obszaru roboczego usługi Azure Quantum.
Środowisko języka Python z zainstalowanym językiem Python i programem .
Program VS Code z zainstalowanymi rozszerzeniami Azure Quantum Development Kit, Python i Jupyter .
Pakiet i pakiet Azure Quantum
qsharp
,qsharp-widgets
iazure-quantum
ipykernel
.python -m pip install --upgrade qsharp qsharp-widgets azure-quantum ipykernel
Uruchamianie i testowanie programu w symulatorze lokalnym
W programie VS Code wybierz pozycję Wyświetl paletę poleceń i wybierz pozycję Utwórz: nowy notes Jupyter.>
W prawym górnym rogu program VS Code wykryje i wyświetli wersję języka Python oraz wirtualne środowisko języka Python wybrane dla notesu. Jeśli masz wiele środowisk języka Python, może być konieczne wybranie jądra przy użyciu selektora jądra w prawym górnym rogu. Jeśli środowisko nie zostało wykryte, zobacz Jupyter Notebooks in VS Code (Notesy Jupyter Notebooks w programie VS Code ), aby uzyskać informacje o konfiguracji.
W pierwszej komórce notesu uruchom następujący kod języka Python, aby zaimportować niezbędne moduły:
import qsharp import azure.quantum
- Moduł
qsharp
aktywuje%%qsharp
polecenie magic, które umożliwia wprowadzenie kodu języka Q# bezpośrednio do komórki. - Moduł
azure-quantum
zapewnia łączność z obszarem roboczym usługi Azure Quantum.
Uwaga
Jeśli nie wykryto jądra
ipykernel
języka Python Jupyter, program VS Code wyświetli monit o jego zainstalowanie.- Moduł
Dodaj kolejną komórkę i wprowadź ten kod języka Q#, który zwraca określoną przez użytkownika liczbę bitów losowych:
Uwaga
Zwróć uwagę, że gdy tylko wpiszesz polecenie
%%qsharp
magic, komórka notesu zmieni typ z języka Python na Q#.%%qsharp operation Random() : Result { use q = Qubit(); H(q); let result = M(q); Reset(q); return result } operation RandomNBits(N: Int): Result[] { mutable results = []; for i in 0 .. N - 1 { let r = Random(); set results += [r]; } return results }
Aby przetestować operację, możesz użyć
eval
metody , która może wywołać dowolną operację języka Q# zdefiniowaną wcześniej w notesie:qsharp.eval("RandomNBits(4)")
[Zero, One, One, Zero]
Aby uruchomić program do lokalnego symulatora, użyj
run
metody .shots
Określ , lub liczbę razy do uruchomienia programu, a symulator zwraca wyniki jako listę języka Python.qsharp.run("RandomNBits(4)", shots=10)
[[One, One, One, One], [Zero, Zero, One, Zero], [One, Zero, Zero, One], [Zero, One, Zero, Zero], [One, Zero, One, One], [One, Zero, One, Zero], [One, One, One, Zero], [One, One, One, One], [Zero, Zero, Zero, One], [One, Zero, Zero, One]]
Wizualizowanie obwodu kwantowego
Obwody kwantowe można wizualizować przy użyciu qsharp-widgets
pakietu. Ten pakiet udostępnia widżet renderujący diagram obwodu kwantowego jako obraz SVG. Aby uzyskać więcej informacji, zobacz Quantum circuit diagrams with Jupyter Notebooks (Diagramy obwodów kwantowych za pomocą notesów Jupyter Notebook).
Dodaj następujący kod do nowej komórki, aby zwizualizować obwód:
from qsharp_widgets import Circuit
Circuit(qsharp.circuit("RandomNBits(4)"))
Aby uzyskać więcej informacji, zobacz Konwencje obwodów kwantowych.
Kompilowanie zadania przy użyciu profilu podstawowego
Po uruchomieniu programów w lokalnym symulatorze kwantowym można przesłać dowolny typ programu języka Q#. Jednak sprzęt targets Azure Quantum nie obsługuje jeszcze pełnych możliwości wymaganych do uruchamiania wszystkich programów w języku Q#. Aby skompilować i przesłać programy języka Q# do usługi Azure Quantum, musisz ustawić profil target , aby poinformować język Q# o możliwościach, które obsługuje sprzęt target . Obecnie jest to profil podstawowy. Aby uzyskać więcej informacji, zobacz Typy profilów w usłudze Azure Quantum.
Aby ponownie zainicjować interpreter języka Q# i skompilować program przy użyciu profilu podstawowego:
init
Użyj metody , aby ustawić profil:qsharp.init(target_profile=qsharp.TargetProfile.Base)
Ponieważ ponownie zainicjowano interpreter, musisz ponownie uruchomić kod przy użyciu nowego profilu:
%%qsharp operation Random() : Result { use q = Qubit(); H(q); let result = M(q); Reset(q); return result } operation RandomNBits(N: Int): Result[] { mutable results = []; for i in 0 .. N - 1 { let r = Random(); set results += [r]; } return results }
Następnie użyj
compile
metody , aby określić operację lub funkcję, która jest punktem wejścia do programu. Spowoduje to skompilowanie kodu w formacie QIR, który można następnie przesłać do dowolnego sprzętu kwantowego:MyProgram = qsharp.compile("RandomNBits(4)")
Nawiązywanie połączenia z usługą Azure Quantum i przesyłanie zadania
Teraz, gdy program został skompilowany w poprawnym formacie, utwórz obiekt w celu nawiązania połączenia z usługą azure.quantum.Workspace
Azure Quantum. Aby nawiązać połączenie, użyjesz identyfikatora zasobu obszaru roboczego usługi Azure Quantum. Identyfikator zasobu i lokalizacja można skopiować ze strony przeglądu obszaru roboczego w witrynie Azure Portal.
W nowej komórce wprowadź identyfikator zasobu i lokalizację z obszaru roboczego usługi Azure Quantum:
MyWorkspace = azure.quantum.Workspace( resource_id = "MyResourceID", location = "MyLocation" )
get_targets
Użyj metody , aby wyświetlić dostępny sprzęt targets w obszarze roboczym:MyTargets = MyWorkspace.get_targets() print("This workspace's targets:") MyTargets
Wybierz pozycję
rigetti.sim.qvm
target:MyTarget = MyWorkspace.get_targets("rigetti.sim.qvm")
Na koniec użyj
submit
metody , aby przesłać program z jego parametrami i wyświetlić wyniki:job = MyTarget.submit(MyProgram, "MyQuantumJob", shots=100) job.get_results()
{'[0, 1, 1, 1]': 0.08, '[1, 1, 0, 0]': 0.1, '[0, 0, 1, 0]': 0.04, '[0, 1, 0, 0]': 0.05, '[1, 0, 1, 0]': 0.05, '[1, 0, 0, 0]': 0.07, '[0, 1, 0, 1]': 0.07, '[1, 0, 1, 1]': 0.07, '[0, 0, 0, 0]': 0.08, '[1, 1, 1, 0]': 0.05, '[0, 0, 0, 1]': 0.1, '[0, 0, 1, 1]': 0.04, '[0, 1, 1, 0]': 0.09, '[1, 0, 0, 1]': 0.04, '[1, 1, 1, 1]': 0.05, '[1, 1, 0, 1]': 0.02}
Wszystkie właściwości zadania są dostępne w
job.details
pliku , na przykład:print(job.details) print("\nJob name:", job.details.name) print("Job status:", job.details.status) print("Job ID:", job.details.id)
{'additional_properties': {'isCancelling': False}, 'id': '0150202e-9638-11ee-be2f-b16153380354', 'name': 'MyQuantumJob', 'provider_id': 'rigetti'...} Job name: MyQuantumJob Job status: Succeeded Job ID: 0150202e-9638-11ee-be2f-b16153380354
Dodatkowe szczegóły zadania
Pakiet azure.quantum
języka Python zawiera dodatkowe metody wyświetlania bardziej szczegółowych danych zadań.
job.get_results_histogram()
: Ta metoda zwraca słownik wyników i liczbę strzałów dla każdej unikatowej miary. Na przykład wyniki poprzedniego zadania będą następujące:print(job.get_results_histogram())
{ '[0, 1, 1, 1]' : {'Outcome' : [0, 1, 1, 1], 'Count' : 8}, '[1, 1, 0, 0]' : {'Outcome' : [1, 1, 0, 0], 'Count' : 10}, '[0, 0, 1, 0]' : {'Outcome' : [0, 0, 1, 0], 'Count' : 4}, '[0, 1, 0, 0]' : {'Outcome' : [0, 1, 0, 0], 'Count' : 5}, '[1, 0, 1, 0]' : {'Outcome' : [1, 0, 1, 0], 'Count' : 5}, '[1, 0, 0, 0]' : {'Outcome' : [1, 0, 0, 0], 'Count' : 7}, '[0, 1, 0, 1]' : {'Outcome' : [0, 1, 0, 1], 'Count' : 7}, '[1, 0, 1, 1]' : {'Outcome' : [1, 0, 1, 1], 'Count' : 7}, '[0, 0, 0, 0]' : {'Outcome' : [0, 0, 0, 0], 'Count' : 8}, '[1, 1, 1, 0]' : {'Outcome' : [1, 1, 1, 0], 'Count' : 5}, '[0, 0, 0, 1]' : {'Outcome' : [0, 0, 0, 1], 'Count' : 10}, '[0, 0, 1, 1]' : {'Outcome' : [0, 0, 1, 1], 'Count' : 4}, '[0, 1, 1, 0]' : {'Outcome' : [0, 1, 1, 0], 'Count' : 9}, '[1, 0, 0, 1]' : {'Outcome' : [1, 0, 0, 1], 'Count' : 4}, '[1, 1, 1, 1]' : {'Outcome' : [1, 1, 1, 1], 'Count' : 5}, '[1, 1, 0, 1]' : {'Outcome' : [1, 1, 0, 1], 'Count' : 2} }
job.get_results_shots()
: Ta metoda zwraca listę każdego wyniku strzału. Na przykład wyniki poprzedniego zadania będą następujące:print(job.get_results_shots())
[ [0, 1, 1, 1], [1, 0, 1, 1], [0, 0, 1, 1], [1, 1, 0, 1], [1, 0, 0, 0], [1, 0, 1, 1], [1, 1, 0, 1], ...]
Przesyłanie języka Python za pomocą zadań języka Q# do usługi Azure Quantum
Dowiedz się, jak używać programu VS Code do pisania programu w języku Python, który wywołuje operacje języka Q#, nawiązuje połączenie z platformą Azure przy użyciu poleceń języka Python lub interfejsu wiersza polecenia platformy Azure i przesyła zadanie.
Wymagania wstępne
Aby uzyskać szczegółowe informacje na temat instalacji, zobacz Instalowanie zestawu QDK w programie VS Code.
- Obszar roboczy usługi Azure Quantum w ramach subskrypcji platformy Azure. Aby utworzyć obszar roboczy, zobacz Tworzenie obszaru roboczego usługi Azure Quantum.
- Środowisko języka Python z zainstalowanym językiem Python i programem .
- Program VS Code z zainstalowanym zestawem Azure Quantum Development Kit i rozszerzeniem języka Python .
- Usługa Azure Quantum
qsharp
iazure-quantum
pakiety. - Interfejs wiersza polecenia platformy Azure z zainstalowanym najnowszym rozszerzeniem usługi Azure Quantum.
Tworzenie i importowanie operacji języka Q#
qsharp
Pakiet umożliwia przechowywanie funkcji i operacji w plikach języka Q# oraz tworzenie projektów języka Q#, które pozwalają wywoływać dowolne z nich z poziomu kodu w języku Python. Jest to szczególnie przydatne, gdy trzeba uruchomić program, który przyjmuje parametry wejściowe.
Wykonaj kroki, aby utworzyć projekt w języku Q#.
Otwórz nowy plik tekstowy, dodaj następujący kod języka Q#, który zwraca określoną przez użytkownika liczbę bitów losowych, a następnie zapisz plik w katalogu /src w projekcie jako
Source.qs
.operation Random() : Result { use q = Qubit(); H(q); let result = M(q); Reset(q); return result } operation RandomNBits(N: Int): Result[] { mutable results = []; for i in 0 .. N - 1 { let r = Random(); set results += [r]; } return results }
W folderze głównym projektu (z plikiem qsharp.json ) otwórz inny plik i zapisz go jako
randomNum.py
.Dodaj następujący kod, aby zaimportować
qsharp
moduły iazure.quantum
.import qsharp import azure.quantum
Następnie dodaj kod, aby zdefiniować folder główny projektu języka Q# i przetestować uruchomienie target operacji w symulatorze lokalnym. Operacja jest wywoływana przez <przestrzeń nazw>.<operation_name( )>, a w tym przypadku przekazujesz liczbę bitów losowych do zwrócenia.
Uwaga
Ponieważ w programie nie określono
Source.qs
przestrzeni nazw , kompilator używa nazwy pliku jako domyślnej przestrzeni nazw —Source.RandomNBits()
. Aby uzyskać więcej informacji, zobacz Projekty i niejawne przestrzenie nazw.qsharp.init(project_root = '../MyProjectRootFolder') print(qsharp.eval("Source.RandomNBits(4)"))
[Zero, One, One, Zero]
Możesz również przetestować operację za pomocą
run
metody , która przekazuje dodatkowyshots
parametr i zwraca wyniki na liście języka Python. WrandomNum.py
pliku zastąp poprzednią instrukcję print następującym kodem:result = qsharp.run("Source.RandomNBits(4)", shots=10) for x in result: print(x)
[[One, One, One, One], [Zero, Zero, One, Zero], [One, Zero, Zero, One], [Zero, One, Zero, Zero], [One, Zero, One, One], [One, Zero, One, Zero], [One, One, One, Zero], [One, One, One, One], [Zero, Zero, Zero, One], [One, Zero, Zero, One]]
Kompilowanie zadania przy użyciu profilu podstawowego
Po uruchomieniu programów w lokalnym symulatorze kwantowym można przesłać dowolny typ programu języka Q#. Jednak sprzęt targets Azure Quantum nie obsługuje jeszcze pełnych możliwości wymaganych do uruchamiania wszystkich programów w języku Q#. Aby skompilować i przesłać programy w języku Q# do usługi Azure Quantum, musisz ustawić profil target , aby poinformować język Q# o możliwościach, które obsługuje twój target sprzęt. Obecnie jest to Base
profil lub Adpative_RI
. Aby uzyskać więcej informacji, zobacz Typy profilów w usłudze Azure Quantum.
Uwaga
W przypadku programów q# tylko w programie VS Code program VS Code automatycznie ustawia Base
profil.
init
Użyj metody , aby ustawić profil:qsharp.init(project_root = '../MyProjectRootFolder', target_profile=qsharp.TargetProfile.Base)
Uwaga
Ponieważ ponownie inicjalizujesz stan qsharp, musisz ponownie ustawić
project_root
parametr, aby kompilator wiedział, gdzie znaleźć operacjęRandomNBits
. Można to również zrobić w kroku 5 poprzedniej procedury.Następnie użyj
compile
metody , aby określić operację lub funkcję, która jest punktem wejścia do programu. Skompilowany program można następnie przesłać do dowolnego sprzętu kwantowego:MyProgram = qsharp.compile("Source.RandomNBits(4)")
Nawiązywanie połączenia z usługą Azure Quantum i przesyłanie zadania
Możesz nawiązać połączenie z usługą Azure Quantum i przesłać zadanie przy użyciu obiektu utworzonego Workspace
w języku Python lub połączyć się i przesłać zadanie przy użyciu interfejsu wiersza polecenia platformy Azure. Użycie interfejsu wiersza polecenia platformy Azure wymaga zapisania skompilowanego programu jako pliku tekstowego i przesłania tego pliku przy użyciu polecenia interfejsu wiersza polecenia.
Teraz, gdy program został skompilowany w poprawnym formacie, utwórz obiekt w celu nawiązania połączenia z usługą azure.quantum.Workspace
Azure Quantum. Aby nawiązać połączenie, użyjesz identyfikatora zasobu obszaru roboczego usługi Azure Quantum. Identyfikator zasobu i lokalizacja można skopiować ze strony przeglądu obszaru roboczego w witrynie Azure Portal.
Dodaj następujący kod do
randomNum.py
pliku , wypełniając identyfikator zasobu i lokalizację z obszaru roboczego usługi Azure Quantum:workspace = azure.quantum.Workspace( resource_id = "MyResourceID", location = "MyLocation" )
get_targets
Użyj metody , aby wyświetlić dostępny sprzęt targets w obszarze roboczym:MyTargets = workspace.get_targets() print("This workspace's targets:") for x in MyTargets: print(x)
Wybierz pozycję
rigetti.sim.qvm
target:MyTarget = workspace.get_targets("rigetti.sim.qvm")
Na koniec użyj
submit
metody , aby przesłać program z jego parametrami. Wyniki zadania są zwracane jako słownik języka Python.job = MyTarget.submit(MyProgram, "MyPythonJob", shots=100) results = job.get_results() print("\nResults: ", results)
Aby wyodrębnić tylko wartości i wyświetlić je:
for x in results: print(x)
[0, 0, 0, 0] 0.3 [1, 0, 0, 0] 0.1 [1, 1, 1, 1] 0.3 [0, 1, 1, 1] 0.3
Wszystkie właściwości zadania są dostępne w
job.details
pliku , na przykład:print(job.details) print("\nJob name:", job.details.name) print("Job status:", job.details.status) print("Job ID:", job.details.id)
{'additional_properties': {'isCancelling': False}, 'id': '0fc396d2-97dd-11ee-9958-6ca1004ff31f', 'name': 'MyPythonJob', 'provider_id': 'rigetti'...} Job name: MyPythonJob Job status: Succeeded Job ID: fc396d2-97dd-11ee-9958-6ca1004ff31f
Dodatkowe szczegóły zadania
Pakiet azure.quantum
języka Python zawiera dodatkowe metody wyświetlania bardziej szczegółowych danych zadań.
job.get_results_histogram()
: Ta metoda zwraca słownik wyników i liczbę strzałów dla każdej unikatowej miary. Na przykład wyniki poprzedniego zadania będą następujące:results = job.get_results_histogram() for x in results.items(): print(x)
{ '[0, 0, 0, 0]' : {'Outcome' : [0, 0, 0, 0], 'Count' : 30}, '[1, 0, 0, 0]' : {'Outcome' : [1, 0, 0, 0], 'Count' : 10}, '[1, 1, 1, 1]' : {'Outcome' : [1, 1, 1, 1], 'Count' : 30}, '[0, 1, 1, 1]' : {'Outcome' : [0, 1, 1, 1], 'Count' : 30} }
job.get_results_shots()
: Ta metoda zwraca listę każdego wyniku strzału. Na przykład wyniki poprzedniego zadania będą następujące:print(job.get_results_shots())
[ [0, 0, 0, 0], [1, 1, 1, 1], [0, 1, 1, 1], [1, 1, 1, 1], [1, 0, 0, 0], [0, 1, 1, 1], [0, 0, 0, 0], ...]