- A project that is powered using FastAPI and Jinja2, hosted using AWS ECR and ECS, containerized using Docker and made as an infrastructure as code using Terraform and allows for continuous monitoring using Prometheus.
- The project uses a Neural Network whose backend is powered using quantum computations and properties to speed up computation.
- It takes in a csv file with three columns (two features and 1 target) and shows the plot of points along with wrong predictions and time/accuracy comparisons to a normal neural network made using Pytorch
- PS: Terraform sets up all the AWS networking modules like load balancers, elastic IPs, etc.
- Download prometheus and copy all files/folders except for prometheus.yml into the prometheus folder in this repository
- Go to config.tf and change region, name for modules and any other necessary configurations
- Download aws-cli and sign in with credentials (access key id and secret key etc)
- Go to AWS ECR in your repository and follow 'view push commands' instructions (if you get an error at first step: view https://stackoverflow.com/questions/60807697/docker-login-error-storing-credentials-the-stub-received-bad-data)
- Go to AWS load balancer and get DNS name and enter it into your searchbar to see your application
- Download prometheus and copy all files/folders except for prometheus.yml into the prometheus folder in this repository
- Just run
docker-compose up --build
and it should be running onlocalhost:8000
- Prometheus is running on
localhost:9090
Ran using OR gates random input and output (in which both qnn and nn overfit due to target imbalance as expected)
PS: Reason why the Neural Network in this case runs faster than the QNN might be because of the difference in complexity of architecture. The Neural Network in this case is using a simple Wide Neural Network