# Question about multiple amplitude encoding in one circuit（pytorch+pennylane）

**URL:** <https://discuss.pennylane.ai/t/question-about-multiple-amplitude-encoding-in-one-circuit-pytorch-pennylane/7462>\
**Category:** PennyLane Help\
**Created:** [November 4, 2024, 8:13am UTC](https://discuss.pennylane.ai/t/question-about-multiple-amplitude-encoding-in-one-circuit-pytorch-pennylane/7462 "2024-11-04T08:13:41Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![SHAN](https://avatars.discourse-cdn.com/v4/letter/s/7ab992/32.png) [@SHAN](https://discuss.pennylane.ai/u/SHAN)\
**Post date:** [November 4, 2024, 8:13am UTC](https://discuss.pennylane.ai/t/question-about-multiple-amplitude-encoding-in-one-circuit-pytorch-pennylane/7462/1 "2024-11-04T08:13:41Z")

</div>

When using pytorch and pennylane, multiple amplitude encoding is not work

```auto
def encode(inputs, n_qubits, embed_type="amplitude"):
    start, end = n_qubits
    # setting embedding
    if "amplitude" == embed_type:
            qml.templates.AmplitudeEmbedding(inputs, wires=range(start, end))
    if "angle" == embed_type:
            qml.templates.AngleEmbedding(inputs, wires=range(start, end))

def qnn(n_qubits, layer):
    dev = qml.device("default.qubit", wires=n_qubits)
    def _qcnn(weights,inputs):
        x1 = inputs[:, :128] 
        x2 = inputs[:, -128:] 
        inputs1 = F.normalize(x1, p=2, dim=1)
        encode(inputs1, (0,7), embed_type="amplitude") 
        inputs2 = F.normalize(x2, p=2, dim=1)
        encode(inputs2, (7,14), embed_type="amplitude")
        ansatz(weights,layer)
        return qml.probs(wires=[0,1,2,3,4,5,6,7,8,9,10,11,12,13])
    
    qlayer = qml.QNode(_qcnn, dev, interface="torch") 
    weight_shapes = {"weights": 49*layer}
    return qml.qnn.TorchLayer(qlayer, weight_shapes)

```

error message below:

```auto
compute_decomposition
    raise ValueError(
ValueError: Broadcasting with MottonenStatePreparation is not supported. Please use the qml.transforms.broadcast_expand transform to use broadcasting with MottonenStatePreparation.

```

Using an amplitude encoding works fine.

---

<div class="post-metadata">

**Author:** ![CatalinaAlbornoz](https://yyz2.discourse-cdn.com/flex012/user_avatar/discuss.pennylane.ai/catalinaalbornoz/32/1196_2.png) [@CatalinaAlbornoz](https://discuss.pennylane.ai/u/CatalinaAlbornoz)\
**Post date:** [November 5, 2024, 11:55pm UTC](https://discuss.pennylane.ai/t/question-about-multiple-amplitude-encoding-in-one-circuit-pytorch-pennylane/7462/2 "2024-11-05T23:55:15Z")

</div>

Hi @SHAN ,

Your issue seems related to the issue mentioned in [this other thread](https://discuss.pennylane.ai/t/error-broadcasting-with-mottonenstatepreparation-is-not-supported-when-using-amplitudeembedding-after-other-operators/5136/6). As mentioned in [post #6](https://discuss.pennylane.ai/t/error-broadcasting-with-mottonenstatepreparation-is-not-supported-when-using-amplitudeembedding-after-other-operators/5136/6) in that thread, using [qml.transforms.broadcast\_expand](https://docs.pennylane.ai/en/stable/code/api/pennylane.transforms.broadcast_expand.html) might help you.

That being said, I don’t think [qml.AmplitudeEmbedding](https://docs.pennylane.ai/en/stable/code/api/pennylane.AmplitudeEmbedding.html) was designed to be used more than once so the solution I mentioned may not work in this case. Why don’t you give it a try and let us know if this works for you?

I hope this helps!

---

<div class="post-metadata">

**Author:** ![SHAN](https://avatars.discourse-cdn.com/v4/letter/s/7ab992/32.png) [@SHAN](https://discuss.pennylane.ai/u/SHAN)\
**Post date:** [November 6, 2024, 2:36am UTC](https://discuss.pennylane.ai/t/question-about-multiple-amplitude-encoding-in-one-circuit-pytorch-pennylane/7462/3 "2024-11-06T02:36:08Z")

</div>

Thank you very much, it solved my issue! 🥰
