A Neural Net Visualizer to help in visualising the hidden layers of Black Boxes a.k.a Neural Networks
My attempt at mixing my web dev knowledge with Machine Learning. Created a Neural Network Visualizer using streamlit and Flask
Trained a simple model with three layers on MNIST dataset and created an endpoint using Flask which first chosen a random image from MNIST dataset and runs the trained model against the choosed image and outputs the value of each neuron and the chosen image.
Used Streamlit to consume this API and display this data in an easy to understand and clean, usable frontend.
It took me more time to host this project on the free tier of Heroku then to make it, but it is now successfully hosted on Heroku. Check it out here. I also wrote a blog on how I created my application, consider checking it out here
It might take a few second to load and generate the first output due to Heroku putting the containers to sleep after 30 minutes of inactivity
The files which have not been listed were used while deploying the project to Heroku and aren't of any importance while running the server locally
Make sure you have at least 2-3 GB of free RAM available because you will have to run two servers (Flask and streamlit) locally
Its a very simple procedure to run the project locally, It is just a matter of 5-6 lines of commands. It may take more time depending on your internet connection and if you already have the requirements or not (especially tensorflow )
git clone https://github.com/jai-dewani/Visualize-Neural-Networks.git
cd Visualize-Neural-Networks
Open two terminals as you will have to keep two server up and running
cd backend
pip install requirements.txt
pyython app.py
Get the url in which your flask server is running like localhost:3000
or something.
Replace this value with the current placeholder URL in app.py in the frontend folder
pip install requirements.txt
streamlit run app.py