Tensorflow Quantum : une brève introduction

Par yferrani, 24 mars, 2024

TensorFlow Quantum

TensorFlow Quantum (TFQ) est une bibliothèque qui permet de créer rapidement des modèles de machine learning hybrides quantiques/classiques. Elle associe la puissance de calcul quantique de Google via Cirq (un langage de programmation quantique) avec TensorFlow. TFQ propose des outils de haut niveau pour concevoir et mettre en œuvre des modèles quantiques compatibles avec TensorFlow, ainsi que des simulateurs de circuits quantiques performants

Installation de TensorFlow 

Image retirée.Image retirée.

Cirq

En informatique quantique, on utilise les qubits pour effectuer des calculs. Cirq, une bibliothèque Python pour l’informatique quantique développée par Google, permet de créer des circuits spéciaux.

Voici comment créer deux qubits :

q0, q1 = cirq.GridQubit.rect(1, 2)

Ensuite, nous définissons des symboles pour les paramètres :

a, b = sympy.symbols('a b')

Créons un circuit avec des portes paramétrées :

circuit = cirq.Circuit(

    cirq.rx(a).on(q0),

    cirq.ry(b).on(q1),

   cirq.CNOT(control=q0, target=q1)

)

Affichons le circuit :

print(circuit)

Créons un simulateur :

simulator = cirq.Simulator()

Définissons les valeurs des paramètres :

resolver = cirq.ParamResolver({a: 0.5, b: -0.5})

Simulons le circuit avec les valeurs des paramètres :

output_state_vector = simulator.simulate(circuit, resolver).final_state_vector

Affichons l’état du vecteur :

print(output_state_vector)

Conversion des objets Cirq en tenseurs 

Dans TensorFlow Quantum (TFQ), la fonction tfq.convert_to_tensor permet de convertir les objets Cirq en tenseurs, ce qui permet de les intégrer dans nos opérations quantiques. Cette fonction peut être utilisée avec des listes ou des tableaux de circuits Cirq et des opérateurs Pauli.

Par exemple, pour convertir un circuit Cirq en tenseur TensorFlow :

circuit_tensor = tfq.convert_to_tensor([circuit])

Affichons la forme et le type de tenseur :

print(circuit_tensor.shape)

print(circuit_tensor.dtype)

Résultat :

(1,) <dtype: 'string'>

Cela transforme les circuits Cirq en tenseurs TensorFlow, ce qui facilite leur utilisation dans nos modèles quantiques.

Sources

Commentaires