Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds exploratory script for SF and Pennylane. #2

Open
wants to merge 16 commits into
base: main
Choose a base branch
from

Conversation

say4n
Copy link
Collaborator

@say4n say4n commented Sep 18, 2021

No description provided.

@say4n say4n changed the title Adds exploratory script for SF. Adds exploratory script for SF and Pennylane. Oct 25, 2021
say4n added 2 commits October 27, 2021 12:57
FIXME: Traceback is as follows:

TypeError: Exception encountered when calling layer "keras_layer" (type KerasLayer).

Cannot interpret '2' as a data type

Call arguments received:
  • inputs=tf.Tensor(shape=(100, 2), dtype=int64)
> /Users/Sayan/Desktop/Projects/coherent-state-discrimination/examples/explore_pennylane.py(85)<module>()
-> model.fit(X_batch, y_batch, epochs=5, batch_size=BATCH_SIZE)
@say4n
Copy link
Collaborator Author

say4n commented Oct 28, 2021

Training presently. Logs as shown below.

❯ python3 explore_pennylane.py
2021-10-28 10:37:11.587161: I tensorflow/core/platform/cpu_feature_guard.cc:151] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
Iteration 1 of 10.
Epoch 1/50
1/1 [==============================] - 51s 51s/step - loss: 0.3759 - accuracy: 0.2540
Epoch 2/50
1/1 [==============================] - 47s 47s/step - loss: 0.3729 - accuracy: 0.2540
Epoch 3/50
1/1 [==============================] - 48s 48s/step - loss: 0.3687 - accuracy: 0.2540
Epoch 4/50
1/1 [==============================] - 48s 48s/step - loss: 0.3583 - accuracy: 0.2540
Epoch 5/50
1/1 [==============================] - 48s 48s/step - loss: 0.3430 - accuracy: 0.2540
Epoch 6/50
1/1 [==============================] - 51s 51s/step - loss: 0.3276 - accuracy: 0.5330
Epoch 7/50
1/1 [==============================] - 56s 56s/step - loss: 0.3072 - accuracy: 0.5330
Epoch 8/50
1/1 [==============================] - 56s 56s/step - loss: 0.2901 - accuracy: 0.5330
Epoch 9/50
1/1 [==============================] - 54s 54s/step - loss: 0.2806 - accuracy: 0.5330
Epoch 10/50
1/1 [==============================] - 53s 53s/step - loss: 0.2712 - accuracy: 0.5330
Epoch 11/50
1/1 [==============================] - 56s 56s/step - loss: 0.2606 - accuracy: 0.5330
Epoch 12/50
1/1 [==============================] - 52s 52s/step - loss: 0.2519 - accuracy: 0.5330
Epoch 13/50
1/1 [==============================] - 47s 47s/step - loss: 0.2478 - accuracy: 0.5330
Epoch 14/50
1/1 [==============================] - 47s 47s/step - loss: 0.2473 - accuracy: 0.5330
Epoch 15/50
1/1 [==============================] - 47s 47s/step - loss: 0.2441 - accuracy: 0.5330
Epoch 16/50
1/1 [==============================] - 47s 47s/step - loss: 0.2405 - accuracy: 0.5330
Epoch 17/50
1/1 [==============================] - 47s 47s/step - loss: 0.2392 - accuracy: 0.5330
Epoch 18/50
1/1 [==============================] - 49s 49s/step - loss: 0.2385 - accuracy: 0.5330
Epoch 19/50
1/1 [==============================] - 49s 49s/step - loss: 0.2377 - accuracy: 0.5330
Epoch 20/50
--- 8< ---

@say4n
Copy link
Collaborator Author

say4n commented Oct 28, 2021

Here is the complete console log on training.

❯ python3 explore_pennylane.py
2021-10-28 11:44:22.764471: I tensorflow/core/platform/cpu_feature_guard.cc:151] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
Iteration 1 of 5.
Epoch 1/20
1/1 [==============================] - 56s 56s/step - loss: 0.3742 - accuracy: 0.2380
Epoch 2/20
1/1 [==============================] - 52s 52s/step - loss: 0.3711 - accuracy: 0.2710
Epoch 3/20
1/1 [==============================] - 56s 56s/step - loss: 0.3684 - accuracy: 0.2710
Epoch 4/20
1/1 [==============================] - 54s 54s/step - loss: 0.3645 - accuracy: 0.2710
Epoch 5/20
1/1 [==============================] - 48s 48s/step - loss: 0.3576 - accuracy: 0.5310
Epoch 6/20
1/1 [==============================] - 47s 47s/step - loss: 0.3480 - accuracy: 0.2600
Epoch 7/20
1/1 [==============================] - 48s 48s/step - loss: 0.3371 - accuracy: 0.4980
Epoch 8/20
1/1 [==============================] - 48s 48s/step - loss: 0.3256 - accuracy: 0.4980
Epoch 9/20
1/1 [==============================] - 47s 47s/step - loss: 0.3114 - accuracy: 0.4980
Epoch 10/20
1/1 [==============================] - 48s 48s/step - loss: 0.2973 - accuracy: 0.4980
Epoch 11/20
1/1 [==============================] - 48s 48s/step - loss: 0.2872 - accuracy: 0.4980
Epoch 12/20
1/1 [==============================] - 48s 48s/step - loss: 0.2809 - accuracy: 0.4980
Epoch 13/20
1/1 [==============================] - 47s 47s/step - loss: 0.2752 - accuracy: 0.4980
Epoch 14/20
1/1 [==============================] - 47s 47s/step - loss: 0.2679 - accuracy: 0.4980
Epoch 15/20
1/1 [==============================] - 48s 48s/step - loss: 0.2595 - accuracy: 0.4980
Epoch 16/20
1/1 [==============================] - 47s 47s/step - loss: 0.2503 - accuracy: 0.4980
Epoch 17/20
1/1 [==============================] - 47s 47s/step - loss: 0.2397 - accuracy: 0.7290
Epoch 18/20
1/1 [==============================] - 48s 48s/step - loss: 0.2284 - accuracy: 0.7290
Epoch 19/20
1/1 [==============================] - 47s 47s/step - loss: 0.2175 - accuracy: 0.7290
Epoch 20/20
1/1 [==============================] - 47s 47s/step - loss: 0.2087 - accuracy: 0.7290
Iteration 2 of 5.
Epoch 1/20
1/1 [==============================] - 48s 48s/step - loss: 0.1895 - accuracy: 0.7670
Epoch 2/20
1/1 [==============================] - 48s 48s/step - loss: 0.1825 - accuracy: 0.7670
Epoch 3/20
1/1 [==============================] - 51s 51s/step - loss: 0.1749 - accuracy: 0.7670
Epoch 4/20
1/1 [==============================] - 50s 50s/step - loss: 0.1685 - accuracy: 0.7670
Epoch 5/20
1/1 [==============================] - 48s 48s/step - loss: 0.1637 - accuracy: 0.7670
Epoch 6/20
1/1 [==============================] - 49s 49s/step - loss: 0.1590 - accuracy: 0.7670
Epoch 7/20
1/1 [==============================] - 47s 47s/step - loss: 0.1553 - accuracy: 0.7670
Epoch 8/20
1/1 [==============================] - 47s 47s/step - loss: 0.1525 - accuracy: 0.7670
Epoch 9/20
1/1 [==============================] - 48s 48s/step - loss: 0.1494 - accuracy: 0.7670
Epoch 10/20
1/1 [==============================] - 47s 47s/step - loss: 0.1459 - accuracy: 0.7670
Epoch 11/20
1/1 [==============================] - 48s 48s/step - loss: 0.1429 - accuracy: 0.7670
Epoch 12/20
1/1 [==============================] - 48s 48s/step - loss: 0.1405 - accuracy: 0.7670
Epoch 13/20
1/1 [==============================] - 48s 48s/step - loss: 0.1385 - accuracy: 0.7670
Epoch 14/20
1/1 [==============================] - 47s 47s/step - loss: 0.1364 - accuracy: 0.7670
Epoch 15/20
1/1 [==============================] - 48s 48s/step - loss: 0.1345 - accuracy: 0.7670
Epoch 16/20
1/1 [==============================] - 47s 47s/step - loss: 0.1329 - accuracy: 0.7670
Epoch 17/20
1/1 [==============================] - 47s 47s/step - loss: 0.1316 - accuracy: 0.7670
Epoch 18/20
1/1 [==============================] - 49s 49s/step - loss: 0.1305 - accuracy: 0.7670
Epoch 19/20
1/1 [==============================] - 48s 48s/step - loss: 0.1295 - accuracy: 0.7670
Epoch 20/20
1/1 [==============================] - 49s 49s/step - loss: 0.1286 - accuracy: 0.7670
Iteration 3 of 5.
Epoch 1/20
1/1 [==============================] - 47s 47s/step - loss: 0.1473 - accuracy: 0.7270
Epoch 2/20
1/1 [==============================] - 48s 48s/step - loss: 0.1467 - accuracy: 0.7270
Epoch 3/20
1/1 [==============================] - 48s 48s/step - loss: 0.1461 - accuracy: 0.7270
Epoch 4/20
1/1 [==============================] - 48s 48s/step - loss: 0.1456 - accuracy: 0.7270
Epoch 5/20
1/1 [==============================] - 48s 48s/step - loss: 0.1450 - accuracy: 0.7270
Epoch 6/20
1/1 [==============================] - 48s 48s/step - loss: 0.1446 - accuracy: 0.7270
Epoch 7/20
1/1 [==============================] - 48s 48s/step - loss: 0.1441 - accuracy: 0.7270
Epoch 8/20
1/1 [==============================] - 48s 48s/step - loss: 0.1437 - accuracy: 0.7270
Epoch 9/20
1/1 [==============================] - 48s 48s/step - loss: 0.1434 - accuracy: 0.7270
Epoch 10/20
1/1 [==============================] - 48s 48s/step - loss: 0.1431 - accuracy: 0.7270
Epoch 11/20
1/1 [==============================] - 47s 47s/step - loss: 0.1428 - accuracy: 0.7270
Epoch 12/20
1/1 [==============================] - 47s 47s/step - loss: 0.1426 - accuracy: 0.7270
Epoch 13/20
1/1 [==============================] - 47s 47s/step - loss: 0.1423 - accuracy: 0.7270
Epoch 14/20
1/1 [==============================] - 47s 47s/step - loss: 0.1421 - accuracy: 0.7270
Epoch 15/20
1/1 [==============================] - 48s 48s/step - loss: 0.1419 - accuracy: 0.7270
Epoch 16/20
1/1 [==============================] - 47s 47s/step - loss: 0.1417 - accuracy: 0.7270
Epoch 17/20
1/1 [==============================] - 47s 47s/step - loss: 0.1415 - accuracy: 0.7270
Epoch 18/20
1/1 [==============================] - 47s 47s/step - loss: 0.1413 - accuracy: 0.7270
Epoch 19/20
1/1 [==============================] - 47s 47s/step - loss: 0.1412 - accuracy: 0.7270
Epoch 20/20
1/1 [==============================] - 47s 47s/step - loss: 0.1410 - accuracy: 0.7270
Iteration 4 of 5.
Epoch 1/20
1/1 [==============================] - 48s 48s/step - loss: 0.1207 - accuracy: 0.7680
Epoch 2/20
1/1 [==============================] - 48s 48s/step - loss: 0.1206 - accuracy: 0.7680
Epoch 3/20
1/1 [==============================] - 48s 48s/step - loss: 0.1204 - accuracy: 0.7680
Epoch 4/20
1/1 [==============================] - 48s 48s/step - loss: 0.1203 - accuracy: 0.7680
Epoch 5/20
1/1 [==============================] - 48s 48s/step - loss: 0.1202 - accuracy: 0.7680
Epoch 6/20
1/1 [==============================] - 47s 47s/step - loss: 0.1201 - accuracy: 0.7680
Epoch 7/20
1/1 [==============================] - 47s 47s/step - loss: 0.1200 - accuracy: 0.7680
Epoch 8/20
1/1 [==============================] - 47s 47s/step - loss: 0.1199 - accuracy: 0.7680
Epoch 9/20
1/1 [==============================] - 48s 48s/step - loss: 0.1199 - accuracy: 0.7680
Epoch 10/20
1/1 [==============================] - 48s 48s/step - loss: 0.1198 - accuracy: 0.7680
Epoch 11/20
1/1 [==============================] - 47s 47s/step - loss: 0.1197 - accuracy: 0.7680
Epoch 12/20
1/1 [==============================] - 48s 48s/step - loss: 0.1196 - accuracy: 0.7680
Epoch 13/20
1/1 [==============================] - 47s 47s/step - loss: 0.1195 - accuracy: 0.7680
Epoch 14/20
1/1 [==============================] - 47s 47s/step - loss: 0.1195 - accuracy: 0.7680
Epoch 15/20
1/1 [==============================] - 48s 48s/step - loss: 0.1194 - accuracy: 0.7680
Epoch 16/20
1/1 [==============================] - 47s 47s/step - loss: 0.1193 - accuracy: 0.7680
Epoch 17/20
1/1 [==============================] - 47s 47s/step - loss: 0.1193 - accuracy: 0.7680
Epoch 18/20
1/1 [==============================] - 48s 48s/step - loss: 0.1192 - accuracy: 0.7680
Epoch 19/20
1/1 [==============================] - 47s 47s/step - loss: 0.1192 - accuracy: 0.7680
Epoch 20/20
1/1 [==============================] - 47s 47s/step - loss: 0.1191 - accuracy: 0.7680
Iteration 5 of 5.
Epoch 1/20
1/1 [==============================] - 47s 47s/step - loss: 0.1344 - accuracy: 0.7370
Epoch 2/20
1/1 [==============================] - 48s 48s/step - loss: 0.1344 - accuracy: 0.7370
Epoch 3/20
1/1 [==============================] - 47s 47s/step - loss: 0.1343 - accuracy: 0.7370
Epoch 4/20
1/1 [==============================] - 48s 48s/step - loss: 0.1343 - accuracy: 0.7370
Epoch 5/20
1/1 [==============================] - 47s 47s/step - loss: 0.1342 - accuracy: 0.7370
Epoch 6/20
1/1 [==============================] - 48s 48s/step - loss: 0.1342 - accuracy: 0.7370
Epoch 7/20
1/1 [==============================] - 48s 48s/step - loss: 0.1342 - accuracy: 0.7370
Epoch 8/20
1/1 [==============================] - 47s 47s/step - loss: 0.1341 - accuracy: 0.7370
Epoch 9/20
1/1 [==============================] - 47s 47s/step - loss: 0.1341 - accuracy: 0.7370
Epoch 10/20
1/1 [==============================] - 48s 48s/step - loss: 0.1340 - accuracy: 0.7370
Epoch 11/20
1/1 [==============================] - 48s 48s/step - loss: 0.1340 - accuracy: 0.7370
Epoch 12/20
1/1 [==============================] - 47s 47s/step - loss: 0.1340 - accuracy: 0.7370
Epoch 13/20
1/1 [==============================] - 48s 48s/step - loss: 0.1339 - accuracy: 0.7370
Epoch 14/20
1/1 [==============================] - 47s 47s/step - loss: 0.1339 - accuracy: 0.7370
Epoch 15/20
1/1 [==============================] - 48s 48s/step - loss: 0.1339 - accuracy: 0.7370
Epoch 16/20
1/1 [==============================] - 47s 47s/step - loss: 0.1338 - accuracy: 0.7370
Epoch 17/20
1/1 [==============================] - 47s 47s/step - loss: 0.1338 - accuracy: 0.7370
Epoch 18/20
1/1 [==============================] - 48s 48s/step - loss: 0.1338 - accuracy: 0.7370
Epoch 19/20
1/1 [==============================] - 48s 48s/step - loss: 0.1337 - accuracy: 0.7370
Epoch 20/20
1/1 [==============================] - 47s 47s/step - loss: 0.1337 - accuracy: 0.7370
Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #
=================================================================
 keras_layer (KerasLayer)    (1000, 2)                 16

 dense (Dense)               (1000, 4)                 12

=================================================================
Total params: 28
Trainable params: 28
Non-trainable params: 0
_________________________________________________________________

@say4n
Copy link
Collaborator Author

say4n commented Nov 3, 2021

Summary

Input

A codeword that characterises a n-mode CV input. For example for the 2 mode case, the inputs can be 00, 01, 10, 11.

Output of the "Network"

A one hot output (ideally) that decodes the original signal. For example for the two mode case it will be as follows:

Codeword One-hot vector
{-a, -a} [1 0 0 0]
{-a, +a} [0 1 0 0]
{+a, -a} [0 0 1 0]
{+a, +a} [0 0 0 1]

Architecture

CNNeuralNet layer with displacement embedding as keras layer followed by a fully connected layer. Recurrence needs to be added.

Loss Function

Optimisation is performed with the mean average error loss function over the target and the output vector across the entire training batch.

TODO

  • Ancilla Inputs
  • Recurrence

@say4n
Copy link
Collaborator Author

say4n commented Nov 9, 2021

The following training logs are for the 2-mode case where the target is to predict {+a, +a} no matter what the input is. In other words, this can be thought of as learning displacement such that we are able to translate the input to {+a, +a} no matter what the input is (this needs some discussion).

❯ ❯ python3 explore_pennylane.py
2021-11-09 13:32:12.477830: I tensorflow/core/platform/cpu_feature_guard.cc:151] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
Iteration 1 of 5.
Epoch 1/5
1/1 [==============================] - 51s 51s/step - loss: 0.3802 - accuracy: 0.0000e+00
Epoch 2/5
1/1 [==============================] - 60s 60s/step - loss: 0.3524 - accuracy: 1.0000
Epoch 3/5
1/1 [==============================] - 52s 52s/step - loss: 0.3240 - accuracy: 1.0000
Epoch 4/5
1/1 [==============================] - 52s 52s/step - loss: 0.2934 - accuracy: 1.0000
Epoch 5/5
1/1 [==============================] - 51s 51s/step - loss: 0.2595 - accuracy: 1.0000
Iteration 2 of 5.
Epoch 1/5
1/1 [==============================] - 54s 54s/step - loss: 0.2220 - accuracy: 1.0000
Epoch 2/5
1/1 [==============================] - 50s 50s/step - loss: 0.1823 - accuracy: 1.0000
Epoch 3/5
1/1 [==============================] - 49s 49s/step - loss: 0.1447 - accuracy: 1.0000
Epoch 4/5
1/1 [==============================] - 50s 50s/step - loss: 0.1124 - accuracy: 1.0000
Epoch 5/5
1/1 [==============================] - 49s 49s/step - loss: 0.0861 - accuracy: 1.0000
Iteration 3 of 5.
Epoch 1/5
1/1 [==============================] - 49s 49s/step - loss: 0.0639 - accuracy: 1.0000
Epoch 2/5
1/1 [==============================] - 49s 49s/step - loss: 0.0458 - accuracy: 1.0000
Epoch 3/5
1/1 [==============================] - 50s 50s/step - loss: 0.0320 - accuracy: 1.0000
Epoch 4/5
1/1 [==============================] - 50s 50s/step - loss: 0.0223 - accuracy: 1.0000
Epoch 5/5
1/1 [==============================] - 50s 50s/step - loss: 0.0156 - accuracy: 1.0000
Iteration 4 of 5.
Epoch 1/5
1/1 [==============================] - 50s 50s/step - loss: 0.0112 - accuracy: 1.0000
Epoch 2/5
1/1 [==============================] - 50s 50s/step - loss: 0.0080 - accuracy: 1.0000
Epoch 3/5
1/1 [==============================] - 49s 49s/step - loss: 0.0058 - accuracy: 1.0000
Epoch 4/5
1/1 [==============================] - 50s 50s/step - loss: 0.0042 - accuracy: 1.0000
Epoch 5/5
1/1 [==============================] - 51s 51s/step - loss: 0.0031 - accuracy: 1.0000
Iteration 5 of 5.
Epoch 1/5
1/1 [==============================] - 50s 50s/step - loss: 0.0023 - accuracy: 1.0000
Epoch 2/5
1/1 [==============================] - 50s 50s/step - loss: 0.0017 - accuracy: 1.0000
Epoch 3/5
1/1 [==============================] - 51s 51s/step - loss: 0.0014 - accuracy: 1.0000
Epoch 4/5
1/1 [==============================] - 48s 48s/step - loss: 0.0011 - accuracy: 1.0000
Epoch 5/5
1/1 [==============================] - 48s 48s/step - loss: 9.0213e-04 - accuracy: 1.0000
Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #
=================================================================
 keras_layer (KerasLayer)    (1000, 2)                 16

 dense (Dense)               (1000, 4)                 12

=================================================================
Total params: 28
Trainable params: 28
Non-trainable params: 0
_________________________________________________________________

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants