Metadata-Version: 2.4
Name: qaintum_qnn
Version: 0.1.1
Summary: Quantum Neural Networks (QNN) framework for quantum-enhanced machine learning.
Home-page: https://github.com/qaintumai/qaintum-ai/tree/main/qnn-container
Author: Sophie Choe, Alex Olivas, Max Ivry, B R Nikilesh
Author-email: Sophie Choe <sophie.choe@qaintum.ai>, Alex Olivas <alex.r.olivas@gmail.com>, Max Ivry <maxssivry@gmail.com>, B R Nikilesh <brnikilesh7@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/qaintumai/qaintum-ai/tree/main/qnn-container
Project-URL: Documentation, https://github.com/qaintumai/qaintum-ai/tree/main/qnn-container/docs
Project-URL: Repository, https://github.com/qaintumai/qaintum-ai/tree/main/qnn-container
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: torch<2.3,>=2.2
Requires-Dist: torchvision<0.18,>=0.17
Requires-Dist: PennyLane<0.30,>=0.29
Requires-Dist: PennyLane-SF<0.30,>=0.29
Requires-Dist: numpy<1.24,>=1.23
Requires-Dist: scipy<1.11,>=1.10
Requires-Dist: sympy>=1.10
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"

# QNN: Quantum Neural Networks Framework
![License](https://img.shields.io/badge/license-MIT-blue.svg)
![Python](https://img.shields.io/badge/python-%3E=3.8-blue)
![PennyLane](https://img.shields.io/badge/PennyLane-0.29.1-green)
![Torch](https://img.shields.io/badge/PyTorch-2.2.2-red)

## **Overview**
This folder contains the code for Quantum Neural Networks (QNN) based on the Continuous Variable (CV) model of Quantum Computing implemented using Quantum Optics.

Quantum computing is a method of computation that utilizes physical mediums operating based on the principles of quantum mechanics. There are two types of quantum computing:
* Discrete Variable (DV) Quantum Computing: quantizing digital computing based on the binary logic. The basis states are |0> and |1>.
* Continuous Variable Quantum Computing: using the continuous properties of nature. The basis states are |0>, |1>, ..., |n>

The difference between DV quantum computing and CV quantum computing is stated in this paper: [Quantum computing overview](https://arxiv.org/pdf/2206.07246).

The actual implementation of CV quantum computing was realized by Xanadu in 2020 using quantum optics. The architecture of the Photonic CV chip implemented by Xanadu can be found in this [paper](https://arxiv.org/abs/2103.02109).

CV Quantum Neural Networks (QNNs) is a framework for quantum-enhanced machine learning, designed to integrate quantum computing with classical deep learning models. Photonic QNN faithfully implements classical neural networks due to optical gates capable of representing bias addition and nonlinear activation function. This framework provides modular components for building, training, and deploying hybrid quantum-classical neural networks.

---

## **Key Features**
- 🧠 **Quantum Model**: Leverages quantum circuits for feature encoding and QNN layer processing.
- 🔥 **PyTorch & PennyLane Integration**: Seamlessly works with **PyTorch** for training and **PennyLane** for quantum circuit simulations.
- ⚡ **Custom Quantum Layers**: Provides pre-built layers like **Quantum Variational Circuits** and **Quantum Convolutional Networks**.
- 📡 **Supports Multiple Quantum Devices**: Compatible with simulators and real quantum hardware (Xanadu's X8) via Pennylane.

---

## Setup Instructions

### **Prerequisites**

Ensure you have the following installed:

- Python 3.10+
- Required Python packages (listed in `requirements.txt`)


### **Installation**

1. Clone the repository:
    ```bash
    git clone https://github.com/qaintumai/qaintum-ai/qnn-container.git
    cd quantum
    ```
2. Create and activate a virtual environment:
    ```bash
    python3 -m venv venv
    source venv/bin/activate
    ```
3. Install the required packages:
    ```bash
    pip install -r requirements.txt
    ```

---
