A small implementation guide on how simple vanilla configuration for split learning works using Auto-Encoders. Split Learning is a concept of Distributed Machine Learning created by MIT Media Labs where Client expects Data privacy and doesn't want to expose the data, sometimes the attributes too while training a machine learning model for their tasks. It can significantly increase the models performance by reducing the losses while the clients can leverage data privacy.
For more info regarding this topic you can follow the link :- https://www.media.mit.edu/search/?q=split%20learning and go through their publications for more AI content.
Vanilla_Split ├── Client │ ├── client.py │ └── Templates │ └── index.html ├── Server │ └── server.py ├── requirements.txt └── README.md
- Image Upload: User-friendly web interface for uploading images
- Feature Extraction: Client-side Convolutional Neural Network (CNN) for feature extraction
- Classification: Server-side dense neural network model for accurate image classification
- Web Application: Built with Flask for seamless user interaction
- Flask
- TensorFlow
- Pandas
- NumPy
- Pillow
pip install -r requirements.txt
git clone https://github.com/BVChandrahaas/Vanilla-Split-Learning.git cd Vanilla_Split
python -m venv venv
pip install -r requirements.txt
cd Server python server.py
cd Client python client.py
Step 6: Open your web browser and navigate to http://127.0.0.1:5000.
- Upload Image: Use the "Upload" button to upload an image.
- Client Preprocessing: The client extracts features from the uploaded image.
- Server Classification: The server classifies the features and returns the results.
- View Results: Results are displayed on the web page.
We welcome contributions! Feel free to:
- Fork this repository
- Submit pull requests
- Report issues
Your contributions will help improve Vanilla Split Learning.
This project is licensed under the MIT License.
See LICENSE for details.