Skip to content

A small implementation guide on how simple vanilla configuration for split learning works using Auto-Encoders.

Notifications You must be signed in to change notification settings

BVChandrahaas/Vanilla-Split-Learning

Repository files navigation

Vanilla-Split-Learning

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.

Project Structure

Vanilla_Split
├── Client
│   ├── client.py
│   └── Templates
│       └── index.html
├── Server
│   └── server.py
├── requirements.txt
└── README.md

Features

Key Functionality

  • 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

Requirements

Dependencies

  • Flask
  • TensorFlow
  • Pandas
  • NumPy
  • Pillow

Installation

pip install -r requirements.txt

Execution Guide

Step 1: Clone Repository

git clone https://github.com/BVChandrahaas/Vanilla-Split-Learning.git
cd Vanilla_Split

Step 2: Set Up Virtual Environment (Optional)

python -m venv venv

Activate Virtual Environment:

Windows:
venv\Scripts\activate

macOS/Linux:
source venv/bin/activate

Step 3: Install Requirements

pip install -r requirements.txt

Step 4: Start Server

cd Server
python server.py

Step 5: Start Client in another Terminal

cd Client
python client.py

Step 6: Open your web browser and navigate to http://127.0.0.1:5000.

Usage

  1. Upload Image: Use the "Upload" button to upload an image.
  2. Client Preprocessing: The client extracts features from the uploaded image.
  3. Server Classification: The server classifies the features and returns the results.
  4. View Results: Results are displayed on the web page.

Contributing

We welcome contributions! Feel free to:

  • Fork this repository
  • Submit pull requests
  • Report issues

Your contributions will help improve Vanilla Split Learning.

License

This project is licensed under the MIT License.

See LICENSE for details.

About

A small implementation guide on how simple vanilla configuration for split learning works using Auto-Encoders.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published