|
2 | 2 | "cells": [ |
3 | 3 | { |
4 | 4 | "cell_type": "code", |
5 | | - "execution_count": 1, |
| 5 | + "execution_count": null, |
6 | 6 | "id": "d892ba92", |
7 | 7 | "metadata": {}, |
8 | 8 | "outputs": [], |
|
19 | 19 | }, |
20 | 20 | { |
21 | 21 | "cell_type": "code", |
22 | | - "execution_count": 2, |
| 22 | + "execution_count": null, |
23 | 23 | "id": "5137b1fb", |
24 | 24 | "metadata": {}, |
25 | 25 | "outputs": [], |
26 | 26 | "source": [ |
27 | 27 | "import bloqade\n", |
28 | | - "from bloqade.ir.location import Chain, start" |
| 28 | + "from bloqade.analog.ir import Chain, start" |
29 | 29 | ] |
30 | 30 | }, |
31 | 31 | { |
|
47 | 47 | }, |
48 | 48 | { |
49 | 49 | "cell_type": "code", |
50 | | - "execution_count": 3, |
| 50 | + "execution_count": null, |
51 | 51 | "id": "fea12b36-2f1c-4538-8cec-c365091a7d6d", |
52 | 52 | "metadata": {}, |
53 | | - "outputs": [ |
54 | | - { |
55 | | - "name": "stdout", |
56 | | - "output_type": "stream", |
57 | | - "text": [ |
58 | | - "X_train: (60000, 28, 28)\n", |
59 | | - "Y_train: (60000,)\n", |
60 | | - "X_test: (10000, 28, 28)\n", |
61 | | - "Y_test: (10000,)\n" |
62 | | - ] |
63 | | - } |
64 | | - ], |
| 53 | + "outputs": [], |
65 | 54 | "source": [ |
66 | 55 | "# Download the MNIST dataset and rescaling data\n", |
67 | 56 | " \n", |
|
79 | 68 | }, |
80 | 69 | { |
81 | 70 | "cell_type": "code", |
82 | | - "execution_count": 4, |
| 71 | + "execution_count": null, |
83 | 72 | "id": "122d68ab-68f0-4d82-a0a1-3217d480bbba", |
84 | 73 | "metadata": { |
85 | 74 | "tags": [] |
86 | 75 | }, |
87 | | - "outputs": [ |
88 | | - { |
89 | | - "data": { |
90 | | - "image/png": "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", |
91 | | - "text/plain": [ |
92 | | - "<Figure size 640x480 with 1 Axes>" |
93 | | - ] |
94 | | - }, |
95 | | - "metadata": {}, |
96 | | - "output_type": "display_data" |
97 | | - } |
98 | | - ], |
| 76 | + "outputs": [], |
99 | 77 | "source": [ |
100 | 78 | "# example of an training dataset image for '5'\n", |
101 | 79 | "plt.imshow(train_X[0], cmap=plt.get_cmap('gray'), interpolation='None')\n", |
|
118 | 96 | }, |
119 | 97 | { |
120 | 98 | "cell_type": "code", |
121 | | - "execution_count": 5, |
| 99 | + "execution_count": null, |
122 | 100 | "id": "6cc2f07f-b04f-4e06-946f-1c7baef0a677", |
123 | 101 | "metadata": { |
124 | 102 | "scrolled": true |
125 | 103 | }, |
126 | | - "outputs": [ |
127 | | - { |
128 | | - "name": "stdout", |
129 | | - "output_type": "stream", |
130 | | - "text": [ |
131 | | - "Training set PCA: \n", |
132 | | - " [[ 0.48601015 1.22617358 0.09613354 2.17944297 -0.10704576 0.9116717\n", |
133 | | - " 0.91763033 0.62666468]\n", |
134 | | - " [ 3.96752304 1.15630211 -2.33858651 1.80692626 -3.24421656 0.71353148\n", |
135 | | - " -0.17655089 -0.41164546]\n", |
136 | | - " [-0.2033318 -1.53793393 0.73925392 -2.04318175 -1.20266952 0.00719743\n", |
137 | | - " -3.36881255 1.44545833]\n", |
138 | | - " [-3.13383152 2.38116556 -1.07314212 -0.41520877 -0.00726755 -2.74374391\n", |
139 | | - " -1.85769884 -0.2640067 ]\n", |
140 | | - " [-1.50099977 -2.86487399 -0.06413234 0.94783341 0.38494646 -0.16952834\n", |
141 | | - " -0.35947686 -1.59041131]] \n", |
142 | | - "\n", |
143 | | - "Test set PCA: \n", |
144 | | - " [[ 0.48601015 1.22617358 0.09613354 2.17944297 -0.10704576 0.9116717\n", |
145 | | - " 0.91763033 0.62666468]\n", |
146 | | - " [ 3.96752304 1.15630211 -2.33858651 1.80692626 -3.24421656 0.71353148\n", |
147 | | - " -0.17655089 -0.41164546]\n", |
148 | | - " [-0.2033318 -1.53793393 0.73925392 -2.04318175 -1.20266952 0.00719743\n", |
149 | | - " -3.36881255 1.44545833]\n", |
150 | | - " [-3.13383152 2.38116556 -1.07314212 -0.41520877 -0.00726755 -2.74374391\n", |
151 | | - " -1.85769884 -0.2640067 ]\n", |
152 | | - " [-1.50099977 -2.86487399 -0.06413234 0.94783341 0.38494646 -0.16952834\n", |
153 | | - " -0.35947686 -1.59041131]] \n" |
154 | | - ] |
155 | | - } |
156 | | - ], |
| 104 | + "outputs": [], |
157 | 105 | "source": [ |
158 | 106 | "# We first use PCA to downsample the data into 10-dimensional vectors\n", |
159 | 107 | "dim_pca = 8\n", |
|
187 | 135 | }, |
188 | 136 | { |
189 | 137 | "cell_type": "code", |
190 | | - "execution_count": 6, |
| 138 | + "execution_count": null, |
191 | 139 | "id": "ed5a7bc3-9d38-4a86-bb7e-ad8be8eb481e", |
192 | 140 | "metadata": { |
193 | 141 | "scrolled": true |
|
217 | 165 | }, |
218 | 166 | { |
219 | 167 | "cell_type": "code", |
220 | | - "execution_count": 7, |
| 168 | + "execution_count": null, |
221 | 169 | "id": "e67796a3", |
222 | 170 | "metadata": {}, |
223 | 171 | "outputs": [], |
|
243 | 191 | }, |
244 | 192 | { |
245 | 193 | "cell_type": "code", |
246 | | - "execution_count": 8, |
| 194 | + "execution_count": null, |
247 | 195 | "id": "3ffae4d8", |
248 | 196 | "metadata": {}, |
249 | 197 | "outputs": [], |
|
328 | 276 | }, |
329 | 277 | { |
330 | 278 | "cell_type": "code", |
331 | | - "execution_count": 9, |
| 279 | + "execution_count": null, |
332 | 280 | "id": "ea54345e", |
333 | 281 | "metadata": {}, |
334 | 282 | "outputs": [], |
|
346 | 294 | }, |
347 | 295 | { |
348 | 296 | "cell_type": "code", |
349 | | - "execution_count": 10, |
| 297 | + "execution_count": null, |
350 | 298 | "id": "43caeabb", |
351 | 299 | "metadata": {}, |
352 | 300 | "outputs": [], |
|
369 | 317 | }, |
370 | 318 | { |
371 | 319 | "cell_type": "code", |
372 | | - "execution_count": 11, |
| 320 | + "execution_count": null, |
373 | 321 | "id": "ac5935be", |
374 | 322 | "metadata": {}, |
375 | 323 | "outputs": [], |
|
380 | 328 | }, |
381 | 329 | { |
382 | 330 | "cell_type": "code", |
383 | | - "execution_count": 12, |
| 331 | + "execution_count": null, |
384 | 332 | "id": "067eac2e", |
385 | 333 | "metadata": {}, |
386 | | - "outputs": [ |
387 | | - { |
388 | | - "name": "stdout", |
389 | | - "output_type": "stream", |
390 | | - "text": [ |
391 | | - "(1000, 288)\n", |
392 | | - "(200, 288)\n" |
393 | | - ] |
394 | | - } |
395 | | - ], |
| 334 | + "outputs": [], |
396 | 335 | "source": [ |
397 | 336 | "print(embeddings.shape)\n", |
398 | 337 | "print(test_embeddings.shape)" |
|
421 | 360 | }, |
422 | 361 | { |
423 | 362 | "cell_type": "code", |
424 | | - "execution_count": 13, |
| 363 | + "execution_count": null, |
425 | 364 | "id": "fe750ec5", |
426 | 365 | "metadata": {}, |
427 | | - "outputs": [ |
428 | | - { |
429 | | - "name": "stdout", |
430 | | - "output_type": "stream", |
431 | | - "text": [ |
432 | | - "PCA test accuracy: 69.0 %\n" |
433 | | - ] |
434 | | - } |
435 | | - ], |
| 366 | + "outputs": [], |
436 | 367 | "source": [ |
437 | 368 | "#building a linear model\n", |
438 | 369 | "model = tf.keras.Sequential([\n", |
|
460 | 391 | }, |
461 | 392 | { |
462 | 393 | "cell_type": "code", |
463 | | - "execution_count": 14, |
| 394 | + "execution_count": null, |
464 | 395 | "id": "74ffd5d9", |
465 | 396 | "metadata": {}, |
466 | | - "outputs": [ |
467 | | - { |
468 | | - "name": "stdout", |
469 | | - "output_type": "stream", |
470 | | - "text": [ |
471 | | - "QRC test accuracy: 83.0 %\n" |
472 | | - ] |
473 | | - } |
474 | | - ], |
| 397 | + "outputs": [], |
475 | 398 | "source": [ |
476 | 399 | "#building a linear model\n", |
477 | 400 | "#we include regularization and tune epsilon parameter of the optimizer to better control training from QRC embeddings generated on finite number of samples\n", |
|
502 | 425 | }, |
503 | 426 | { |
504 | 427 | "cell_type": "code", |
505 | | - "execution_count": 16, |
| 428 | + "execution_count": null, |
506 | 429 | "id": "266a1d4f", |
507 | 430 | "metadata": {}, |
508 | | - "outputs": [ |
509 | | - { |
510 | | - "name": "stdout", |
511 | | - "output_type": "stream", |
512 | | - "text": [ |
513 | | - "4-layer NN test accuracy: 81.0 %\n" |
514 | | - ] |
515 | | - } |
516 | | - ], |
| 431 | + "outputs": [], |
517 | 432 | "source": [ |
518 | 433 | "model = tf.keras.Sequential([\n", |
519 | 434 | " tf.keras.layers.Dense(50, activation='relu'),\n", |
|
539 | 454 | }, |
540 | 455 | { |
541 | 456 | "cell_type": "code", |
542 | | - "execution_count": 15, |
| 457 | + "execution_count": null, |
543 | 458 | "id": "5333d324", |
544 | 459 | "metadata": {}, |
545 | | - "outputs": [ |
546 | | - { |
547 | | - "name": "stderr", |
548 | | - "output_type": "stream", |
549 | | - "text": [ |
550 | | - "c:\\Users\\mkornjaca\\anaconda3\\envs\\blpy_June\\Lib\\site-packages\\sklearn\\svm\\_base.py:1235: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", |
551 | | - " warnings.warn(\n" |
552 | | - ] |
553 | | - }, |
554 | | - { |
555 | | - "name": "stdout", |
556 | | - "output_type": "stream", |
557 | | - "text": [ |
558 | | - "Linear SVM test accuracy: 70.0 %\n", |
559 | | - "SVC test accuracy (rbf kernel): 89.0 %\n", |
560 | | - "QRC test accuracy: 84.0 %\n" |
561 | | - ] |
562 | | - } |
563 | | - ], |
| 460 | + "outputs": [], |
564 | 461 | "source": [ |
565 | 462 | "#The same implemented with LinearSVC and SVC from sklearn.\n", |
566 | 463 | "\n", |
|
602 | 499 | }, |
603 | 500 | { |
604 | 501 | "cell_type": "code", |
605 | | - "execution_count": 19, |
| 502 | + "execution_count": null, |
606 | 503 | "id": "ad2cec48", |
607 | 504 | "metadata": {}, |
608 | 505 | "outputs": [], |
|
625 | 522 | }, |
626 | 523 | { |
627 | 524 | "cell_type": "code", |
628 | | - "execution_count": 21, |
| 525 | + "execution_count": null, |
629 | 526 | "id": "583b9878", |
630 | 527 | "metadata": {}, |
631 | 528 | "outputs": [], |
|
641 | 538 | " try:\n", |
642 | 539 | " #task=build_task(QRC_parameters, xs[data,:]).parallelize(15).braket.aquila().run_async(shots=nshots, name = \"QRC_train_\"+str(data))\n", |
643 | 540 | " task=build_task(QRC_parameters, xs[data,:]).parallelize(15).quera.mock().run_async(shots=nshots, name = \"QRC_train_\"+str(data))\n", |
644 | | - " bloqade.save(\n", |
| 541 | + " bloqade.analog.save(\n", |
645 | 542 | " task,\n", |
646 | 543 | " path_to_tasks + \"/\" + \"qrc_train_\" + str(data) + \".json\", \n", |
647 | 544 | " )\n", |
|
655 | 552 | " try:\n", |
656 | 553 | " #task=build_task(QRC_parameters, xs[data,:]).parallelize(15).braket.aquila().run_async(shots=nshots, name = \"QRC_test_\"+str(data))\n", |
657 | 554 | " task=build_task(QRC_parameters, xs_test[data,:]).parallelize(15).quera.mock().run_async(shots=nshots, name = \"QRC_test_\"+str(data))\n", |
658 | | - " bloqade.save(\n", |
| 555 | + " bloqade.analog.save(\n", |
659 | 556 | " task,\n", |
660 | 557 | " path_to_tasks + \"/\" + \"qrc_test_\" + str(data) + \".json\", \n", |
661 | 558 | " )\n", |
|
687 | 584 | "#Train task fetching\n", |
688 | 585 | "for data in range(num_examples):\n", |
689 | 586 | " try:\n", |
690 | | - " task = bloqade.load(path_to_tasks + \"/\" + \"qrc_train_\" + str(data) + \".json\")\n", |
691 | | - " bloqade.save(\n", |
| 587 | + " task = bloqade.analog.load(path_to_tasks + \"/\" + \"qrc_train_\" + str(data) + \".json\")\n", |
| 588 | + " bloqade.analog.save(\n", |
692 | 589 | " task.fetch(),\n", |
693 | 590 | " path_to_results + \"/\" + \"qrc_train_\" + str(data) + \".json\", \n", |
694 | 591 | " )\n", |
|
698 | 595 | "#Test task fetching\n", |
699 | 596 | "for data in range(num_test_examples):\n", |
700 | 597 | " try:\n", |
701 | | - " task = bloqade.load(path_to_tasks + \"/\" + \"qrc_test_\" + str(data) + \".json\")\n", |
702 | | - " bloqade.save(\n", |
| 598 | + " task = bloqade.analog.load(path_to_tasks + \"/\" + \"qrc_test_\" + str(data) + \".json\")\n", |
| 599 | + " bloqade.analog.save(\n", |
703 | 600 | " task.fetch(),\n", |
704 | 601 | " path_to_results + \"/\" + \"qrc_test_\" + str(data) + \".json\", \n", |
705 | 602 | " )\n", |
|
724 | 621 | "source": [ |
725 | 622 | "embeddings_Aquila=[]\n", |
726 | 623 | "for data in range(num_examples):\n", |
727 | | - " task_report = bloqade.load(path_to_results + \"/\" + \"qrc_train_\" + str(data) + \".json\").report()\n", |
| 624 | + " task_report = bloqade.analog.load(path_to_results + \"/\" + \"qrc_train_\" + str(data) + \".json\").report()\n", |
728 | 625 | " embeddings.append(process_results(QRC_parameters,task_report))\n", |
729 | 626 | "embeddings_Aquila=np.array(embeddings_Aquila)\n", |
730 | 627 | "\n", |
731 | 628 | "test_embeddings_Aquila=[]\n", |
732 | 629 | "for data in range(num_test_examples):\n", |
733 | | - " task_report = bloqade.load(path_to_results + \"/\" + \"qrc_test_\" + str(data) + \".json\").report()\n", |
| 630 | + " task_report = bloqade.analog.load(path_to_results + \"/\" + \"qrc_test_\" + str(data) + \".json\").report()\n", |
734 | 631 | " test_embeddings_Aquila.append(process_results(QRC_parameters,task_report))\n", |
735 | 632 | "test_embeddings_Aquila=np.array(test_embeddings_Aquila)\n" |
736 | 633 | ] |
|
786 | 683 | ], |
787 | 684 | "metadata": { |
788 | 685 | "kernelspec": { |
789 | | - "display_name": "Python 3 (ipykernel)", |
| 686 | + "display_name": "QRC-tutorials", |
790 | 687 | "language": "python", |
791 | 688 | "name": "python3" |
792 | 689 | }, |
|
800 | 697 | "name": "python", |
801 | 698 | "nbconvert_exporter": "python", |
802 | 699 | "pygments_lexer": "ipython3", |
803 | | - "version": "3.12.4" |
| 700 | + "version": "3.12.1" |
804 | 701 | } |
805 | 702 | }, |
806 | 703 | "nbformat": 4, |
|
0 commit comments