Skip to content

Bug in U2 gate parameter initialization #232

@yezhuoyang

Description

@yezhuoyang

This is the code I use that has some bugs related with parameter initialization(In dev branch):

import torchquantum as tq
import torchquantum.functional as tqf

qdev = tq.QuantumDevice(n_wires=2, bsz=5, device="cpu", record_op=True)  # use device='cuda' for GPU

# use tqf
tq.u2(qdev, [0], [0.1, 0.2])

# print the current state (dynamic computation graph supported)
print(qdev)

U2 gate is the rotation gate with two parameters
U2 gate in qiskit

Running the above example will generate the following error message:

image

The error is caused by some strange manipulation on the dimension of the tensor, I don't understand why we have to use some squeeze and unsqueeze here.

image

It seems that many other gates with more than one parameters have similar issue. We should set the standard of how should user pass the parameters in. And perhaps more code comments in the above part can help developer to understand the convention of tensor dimensions.

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions