MCPcopy Create free account
hub / github.com/Apress/quantum-machine-learning-python / QuantumCircuit

Class QuantumCircuit

Chapter_6/listing6_1/QCNN.py:17–44  ·  view source on GitHub ↗

The class implements a simple Quantum Block

Source from the content-addressed store, hash-verified

15#from qiskit.visualizatiosn import *
16
17class QuantumCircuit:
18 """
19 The class implements a simple Quantum Block
20 """
21
22 def __init__(self, num_qubits, backend, copies: int = 1000):
23 self._circuit_ = qiskit.QuantumCircuit(num_qubits)
24 self.theta = qiskit.circuit.Parameter('theta')
25 self._circuit_.h([i for i in range(num_qubits)])
26 self._circuit_.barrier()
27 self._circuit_.ry(self.theta, [i for i in range(num_qubits)])
28 self._circuit_.measure_all()
29
30 self.backend = backend
31 self.copies = copies
32
33 def run(self, theta_batch):
34 job = qiskit.execute(self._circuit_,
35 self.backend,
36 shots=self.copies,
37 parameter_binds=[{self.theta: theta} for theta in theta_batch])
38 result = job.result().get_counts(self._circuit_)
39
40 counts = np.array(list(result.values()))
41 states = np.array(list(result.keys())).astype(float)
42 probs = counts / self.copies
43 expectation = np.array([np.sum(np.multiply(probs, states))])
44 return expectation
45
46
47class QuantumFunction(Function):

Callers 3

__init__Method · 0.85
listing_3.3.pyFile · 0.85
listing_3.5.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected