Skip to content

Commit b640fc4

Browse files
author
Chee Kwan Gan
committed
Three variants of QCNN, i.e., QCNNCOMPLEX, QCNNREAL, and QCNNRY are implemented.
1 parent 24b3aff commit b640fc4

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

tests/test_models_qcnn.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import pytest
22

3-
pytest.skip("Soon to be moved to `qiboml`.", allow_module_level=True)
3+
# pytest.skip("Soon to be moved to `qiboml`.", allow_module_level=True)
44

55
import math
66

77
import numpy as np
88

99
from qibo import gates, set_backend
1010
from qibo.models import Circuit
11-
from qibo.models.qcnn import QuantumCNN
11+
from qiboml.models.qcnn import QuantumCNN
1212

1313
num_angles = 21
1414
angles0 = [i * math.pi / num_angles for i in range(num_angles)]
@@ -21,7 +21,7 @@ def test_classifier_circuit2():
2121
nlayers = int(nqubits / 2)
2222
init_state = np.ones(2**nqubits) / np.sqrt(2**nqubits) #
2323

24-
qcnn = QuantumCNN(nqubits, nlayers, nclasses=2) # , params=angles0)
24+
qcnn = QuantumCNN(quantum_model='QCNNCOMPLEX',nqubits=nqubits, nlayers=nlayers, nclasses=2) # , params=angles0)
2525

2626
angles = [0] + angles0
2727

@@ -86,7 +86,7 @@ def test_classifier_circuit4():
8686
nlayers = int(nqubits / 2)
8787
init_state = np.ones(2**nqubits) / np.sqrt(2**nqubits) #
8888

89-
qcnn = QuantumCNN(nqubits, nlayers, nclasses=2)
89+
qcnn = QuantumCNN('QCNNCOMPLEX',nqubits, nlayers, nclasses=2)
9090
angles = [0] + angles0 + angles0
9191

9292
circuit = qcnn.Classifier_circuit(angles)
@@ -275,7 +275,7 @@ def CNOT_unitary(nqubits, bit0, bit1):
275275

276276
def test_1_qubit_classifier_circuit_error():
277277
try:
278-
QuantumCNN(nqubits=1, nlayers=1, nclasses=2)
278+
QuantumCNN('QCNNCOMPLEX',nqubits=1, nlayers=1, nclasses=2)
279279
except:
280280
pass
281281

@@ -296,7 +296,7 @@ def test_qcnn_training():
296296
testbias = np.zeros(1)
297297
testangles = [random.uniform(0, 2 * np.pi) for i in range(21 * 2)]
298298
init_theta = np.concatenate((testbias, testangles))
299-
test_qcnn = QuantumCNN(nqubits=4, nlayers=1, nclasses=2, params=init_theta)
299+
test_qcnn = QuantumCNN('QCNNCOMPLEX',nqubits=4, nlayers=1, nclasses=2, params=init_theta)
300300
testcircuit = test_qcnn._circuit
301301
result = test_qcnn.minimize(
302302
init_theta, data=data, labels=labels, nshots=10000, method="Powell"
@@ -318,7 +318,7 @@ def test_two_qubit_ansatz():
318318
circuit.add(gates.H(0))
319319
circuit.add(gates.RX(0, 0))
320320
circuit.add(gates.CNOT(1, 0))
321-
test_qcnn = QuantumCNN(4, 2, 2, twoqubitansatz=circuit)
321+
test_qcnn = QuantumCNN(quantum_model='QCNNCOMPLEX',nqubits=4, nlayers=2, nclasses=2, twoqubitansatz=circuit)
322322

323323

324324
def test_two_qubit_ansatz_training():
@@ -329,7 +329,7 @@ def test_two_qubit_ansatz_training():
329329
circuit.add(gates.H(0))
330330
circuit.add(gates.RX(0, 0))
331331
circuit.add(gates.CNOT(1, 0))
332-
test_qcnn = QuantumCNN(4, 2, 2, twoqubitansatz=circuit)
332+
test_qcnn = QuantumCNN(quantum_model='QCNNCOMPLEX',nqubits=4, nlayers=2, nclasses=2, twoqubitansatz=circuit)
333333

334334
data = np.zeros([2, 16])
335335
for i in range(2):

0 commit comments

Comments
 (0)