diff --git a/.github/workflows/refresh-one-notebook.yaml b/.github/workflows/refresh-one-notebook.yaml index 754911ac5..774d5009b 100644 --- a/.github/workflows/refresh-one-notebook.yaml +++ b/.github/workflows/refresh-one-notebook.yaml @@ -50,10 +50,10 @@ env: ACTION_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} # --- refresh_notebooks_list.py: refresh list of notebook paths currently available [START] --- # --- do not edit, auto generated part by `make refresh_notebooks_list` --- - Cifar10: "use_case_examples/cifar_brevitas_with_model_splitting/Cifar10.ipynb" - CifarInFhe: "use_case_examples/cifar_brevitas_finetuning/CifarInFhe.ipynb" - CifarInFheWithSmallerAccumulators: "use_case_examples/cifar_brevitas_finetuning/CifarInFheWithSmallerAccumulators.ipynb" - CifarQuantizationAwareTraining: "use_case_examples/cifar_brevitas_finetuning/CifarQuantizationAwareTraining.ipynb" + Cifar10: "use_case_examples/cifar/cifar_brevitas_with_model_splitting/Cifar10.ipynb" + CifarInFhe: "use_case_examples/cifar/cifar_brevitas_finetuning/CifarInFhe.ipynb" + CifarInFheWithSmallerAccumulators: "use_case_examples/cifar/cifar_brevitas_finetuning/CifarInFheWithSmallerAccumulators.ipynb" + CifarQuantizationAwareTraining: "use_case_examples/cifar/cifar_brevitas_finetuning/CifarQuantizationAwareTraining.ipynb" ClassifierComparison: "docs/advanced_examples/ClassifierComparison.ipynb" ClientServer: "docs/advanced_examples/ClientServer.ipynb" ConvolutionalNeuralNetwork: "docs/advanced_examples/ConvolutionalNeuralNetwork.ipynb" @@ -62,7 +62,7 @@ env: DecisionTreeRegressor: "docs/advanced_examples/DecisionTreeRegressor.ipynb" Deployment: "docs/advanced_examples/Deployment.ipynb" ExperimentPrivacyTreePaper: "docs/advanced_examples/ExperimentPrivacyTreePaper.ipynb" - FromImageNetToCifar: "use_case_examples/cifar_brevitas_finetuning/FromImageNetToCifar.ipynb" + FromImageNetToCifar: "use_case_examples/cifar/cifar_brevitas_finetuning/FromImageNetToCifar.ipynb" FullyConnectedNeuralNetwork: "docs/advanced_examples/FullyConnectedNeuralNetwork.ipynb" FullyConnectedNeuralNetworkOnMNIST: "docs/advanced_examples/FullyConnectedNeuralNetworkOnMNIST.ipynb" GLMComparison: "docs/advanced_examples/GLMComparison.ipynb" @@ -72,7 +72,7 @@ env: LinearSVR: "docs/advanced_examples/LinearSVR.ipynb" LogisticRegression: "docs/advanced_examples/LogisticRegression.ipynb" MnistInFHE: "use_case_examples/mnist/MnistInFHE.ipynb" - PerrorImpactOnFMNIST: "use_case_examples/cifar_brevitas_finetuning/PerrorImpactOnFMNIST.ipynb" + PerrorImpactOnFMNIST: "use_case_examples/cifar/cifar_brevitas_finetuning/PerrorImpactOnFMNIST.ipynb" PoissonRegression: "docs/advanced_examples/PoissonRegression.ipynb" QGPT2Evaluate: "use_case_examples/llm/QGPT2Evaluate.ipynb" QuantFrameworkExample: "use_case_examples/llm/QuantFrameworkExample.ipynb" diff --git a/use_case_examples/cifar/README.md b/use_case_examples/cifar/README.md new file mode 100644 index 000000000..6ef892b97 --- /dev/null +++ b/use_case_examples/cifar/README.md @@ -0,0 +1,59 @@ +# CIFAR-10 and CIFAR-100 Classification with FHE + +This repository provides resources and documentation on different use-cases for classifying CIFAR-10 and CIFAR-100 images using Fully Homomorphic Encryption (FHE). Each use-case demonstrates different techniques and adaptations to work within the constraints of FHE.Notably, a fine-tuning from a public pre-trained model, a training from scratch using quantization aware training (QAT) and finally a hybrid approach where only a subset of the model is done in FHE. + +## Table of Contents + +1. [Use-Cases](#use-cases) + - [Fine-Tuning VGG11 CIFAR-10/100](#fine-tuning-cifar-10100) + - [Training Ternary VGG9 on CIFAR10](#training-ternary-vgg-on-cifar10) + - [CIFAR-10 VGG9 with one client-side layer](#cifar-10-with-a-split-clearfhe-model) +1. [Installation](#installation) +1. [Further Reading & Resources](#further-reading--resources) + +## Use cases + +### Fine-Tuning CIFAR-10/100 + +- **Description**: This use-case explores how to convert a pre-trained CNN (on imagenet) to its FHE equivalent using Quantization Aware Training (QAT) and Concrete ML. The conversion process involves adapting a VGG11 network and quantizing the network for FHE. + +Notebooks: + +1. [Adapting VGG11 for CIFAR datasets](cifar_brevitas_finetuning/FromImageNetToCifar.ipynb). +1. [Quantizing the pre-trained network](cifar_brevitas_finetuning/CifarQuantizationAwareTraining.ipynb). +1. [Computing the accuracy of the quantized models with FHE simulation](cifar_brevitas_finetuning/CifarInFhe.ipynb). +1. [Enhancing inference time in FHE using smaller accumulators](cifar_brevitas_finetuning/CifarInFheWithSmallerAccumulators.ipynb). + +[Results & Metrics](cifar_brevitas_finetuning/README.md#results) + +### Training Ternary VGG on CIFAR10 + +- **Description**: Train a VGG-like neural network from scratch using Brevitas on CIFAR-10 and run it in FHE. This use-case modifies the original VGG model for compatibility with Concrete ML, and explores the performance gains of rounding operations in FHE. +- **Training & Inference**: Scripts provided to train the network and evaluate its performance. It also includes simulations in Concrete ML and insights into the performance enhancement using rounding. + +[Results & Metrics](cifar_brevitas_training/README.md#Accuracy_/and_/performance) + +### CIFAR-10 with a Split Clear/FHE Model + +- **Description**: This method divides the model into two segments: one that operates in plaintext (clear) and the other in Fully Homomorphic Encryption (FHE). This division allows for greater precision in the input layer while taking advantage of FHE's privacy-preserving capabilities in the subsequent layers. +- **Model Design**: Aims at using 8-bit accumulators to speed up FHE inference. The design incorporates pruning techniques and employs 2-bit weights to meet this aim. +- **Implementation**: Provides step-by-step guidance on how to execute the hybrid clear/FHE model, focusing on the details and decisions behind selecting the optimal `p_error` value. Special attention is given to the binary search method to balance accuracy and FHE performance. + +[Results & Metrics](cifar_brevitas_with_model_splitting/README.md#results) + +## Installation + +All use-cases can be quickly set up with: + + + +```bash +pip install -r requirements.txt +``` + +## Further Reading & Resources + +- [Concrete ML Documentation](https://docs.zama.ai/concrete-ml/) +- [Brevitas Github Repository](https://github.com/Xilinx/brevitas) +- [Fully Homomorphic Encryption Basics](https://www.zama.ai/post/tfhe-deep-dive-part-1) +- [CIFAR Datasets Overview](https://www.cs.toronto.edu/~kriz/cifar.html) diff --git a/use_case_examples/cifar_brevitas_finetuning/.gitattributes b/use_case_examples/cifar/cifar_brevitas_finetuning/.gitattributes similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/.gitattributes rename to use_case_examples/cifar/cifar_brevitas_finetuning/.gitattributes diff --git a/use_case_examples/cifar_brevitas_finetuning/.gitignore b/use_case_examples/cifar/cifar_brevitas_finetuning/.gitignore similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/.gitignore rename to use_case_examples/cifar/cifar_brevitas_finetuning/.gitignore diff --git a/use_case_examples/cifar_brevitas_finetuning/CifarInFhe.ipynb b/use_case_examples/cifar/cifar_brevitas_finetuning/CifarInFhe.ipynb similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/CifarInFhe.ipynb rename to use_case_examples/cifar/cifar_brevitas_finetuning/CifarInFhe.ipynb diff --git a/use_case_examples/cifar_brevitas_finetuning/CifarInFheWithSmallerAccumulators.ipynb b/use_case_examples/cifar/cifar_brevitas_finetuning/CifarInFheWithSmallerAccumulators.ipynb similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/CifarInFheWithSmallerAccumulators.ipynb rename to use_case_examples/cifar/cifar_brevitas_finetuning/CifarInFheWithSmallerAccumulators.ipynb diff --git a/use_case_examples/cifar_brevitas_finetuning/CifarQuantizationAwareTraining.ipynb b/use_case_examples/cifar/cifar_brevitas_finetuning/CifarQuantizationAwareTraining.ipynb similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/CifarQuantizationAwareTraining.ipynb rename to use_case_examples/cifar/cifar_brevitas_finetuning/CifarQuantizationAwareTraining.ipynb diff --git a/use_case_examples/cifar_brevitas_finetuning/FromImageNetToCifar.ipynb b/use_case_examples/cifar/cifar_brevitas_finetuning/FromImageNetToCifar.ipynb similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/FromImageNetToCifar.ipynb rename to use_case_examples/cifar/cifar_brevitas_finetuning/FromImageNetToCifar.ipynb diff --git a/use_case_examples/cifar_brevitas_finetuning/Makefile b/use_case_examples/cifar/cifar_brevitas_finetuning/Makefile similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/Makefile rename to use_case_examples/cifar/cifar_brevitas_finetuning/Makefile diff --git a/use_case_examples/cifar_brevitas_finetuning/PerrorImpactOnFMNIST.ipynb b/use_case_examples/cifar/cifar_brevitas_finetuning/PerrorImpactOnFMNIST.ipynb similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/PerrorImpactOnFMNIST.ipynb rename to use_case_examples/cifar/cifar_brevitas_finetuning/PerrorImpactOnFMNIST.ipynb diff --git a/use_case_examples/cifar_brevitas_finetuning/README.md b/use_case_examples/cifar/cifar_brevitas_finetuning/README.md similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/README.md rename to use_case_examples/cifar/cifar_brevitas_finetuning/README.md diff --git a/use_case_examples/cifar_brevitas_finetuning/checkpoints/CIFAR_10/fp32/CIFAR_10_fp32_state_dict.pt b/use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/CIFAR_10/fp32/CIFAR_10_fp32_state_dict.pt similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/checkpoints/CIFAR_10/fp32/CIFAR_10_fp32_state_dict.pt rename to use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/CIFAR_10/fp32/CIFAR_10_fp32_state_dict.pt diff --git a/use_case_examples/cifar_brevitas_finetuning/checkpoints/CIFAR_10/fp32/CIFAR_10_history.pkl b/use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/CIFAR_10/fp32/CIFAR_10_history.pkl similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/checkpoints/CIFAR_10/fp32/CIFAR_10_history.pkl rename to use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/CIFAR_10/fp32/CIFAR_10_history.pkl diff --git a/use_case_examples/cifar_brevitas_finetuning/checkpoints/CIFAR_10/quant/CIFAR_10_history.pkl b/use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/CIFAR_10/quant/CIFAR_10_history.pkl similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/checkpoints/CIFAR_10/quant/CIFAR_10_history.pkl rename to use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/CIFAR_10/quant/CIFAR_10_history.pkl diff --git a/use_case_examples/cifar_brevitas_finetuning/checkpoints/CIFAR_10/quant/CIFAR_10_quant_state_dict.pt b/use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/CIFAR_10/quant/CIFAR_10_quant_state_dict.pt similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/checkpoints/CIFAR_10/quant/CIFAR_10_quant_state_dict.pt rename to use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/CIFAR_10/quant/CIFAR_10_quant_state_dict.pt diff --git a/use_case_examples/cifar_brevitas_finetuning/checkpoints/CIFAR_100/fp32/CIFAR_100_fp32_state_dict.pt b/use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/CIFAR_100/fp32/CIFAR_100_fp32_state_dict.pt similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/checkpoints/CIFAR_100/fp32/CIFAR_100_fp32_state_dict.pt rename to use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/CIFAR_100/fp32/CIFAR_100_fp32_state_dict.pt diff --git a/use_case_examples/cifar_brevitas_finetuning/checkpoints/CIFAR_100/fp32/CIFAR_100_history.pkl b/use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/CIFAR_100/fp32/CIFAR_100_history.pkl similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/checkpoints/CIFAR_100/fp32/CIFAR_100_history.pkl rename to use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/CIFAR_100/fp32/CIFAR_100_history.pkl diff --git a/use_case_examples/cifar_brevitas_finetuning/checkpoints/CIFAR_100/quant/CIFAR_100_history.pkl b/use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/CIFAR_100/quant/CIFAR_100_history.pkl similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/checkpoints/CIFAR_100/quant/CIFAR_100_history.pkl rename to use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/CIFAR_100/quant/CIFAR_100_history.pkl diff --git a/use_case_examples/cifar_brevitas_finetuning/checkpoints/CIFAR_100/quant/CIFAR_100_quant_state_dict.pt b/use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/CIFAR_100/quant/CIFAR_100_quant_state_dict.pt similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/checkpoints/CIFAR_100/quant/CIFAR_100_quant_state_dict.pt rename to use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/CIFAR_100/quant/CIFAR_100_quant_state_dict.pt diff --git a/use_case_examples/cifar_brevitas_finetuning/checkpoints/FashionMNIST/fp32/FashionMNIST_fp32_state_dict.pt b/use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/FashionMNIST/fp32/FashionMNIST_fp32_state_dict.pt similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/checkpoints/FashionMNIST/fp32/FashionMNIST_fp32_state_dict.pt rename to use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/FashionMNIST/fp32/FashionMNIST_fp32_state_dict.pt diff --git a/use_case_examples/cifar_brevitas_finetuning/checkpoints/FashionMNIST/quant/FashionMNIST_quant_state_dict.pt b/use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/FashionMNIST/quant/FashionMNIST_quant_state_dict.pt similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/checkpoints/FashionMNIST/quant/FashionMNIST_quant_state_dict.pt rename to use_case_examples/cifar/cifar_brevitas_finetuning/checkpoints/FashionMNIST/quant/FashionMNIST_quant_state_dict.pt diff --git a/use_case_examples/cifar_brevitas_finetuning/cifar_utils.py b/use_case_examples/cifar/cifar_brevitas_finetuning/cifar_utils.py similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/cifar_utils.py rename to use_case_examples/cifar/cifar_brevitas_finetuning/cifar_utils.py diff --git a/use_case_examples/cifar_brevitas_finetuning/models.py b/use_case_examples/cifar/cifar_brevitas_finetuning/models.py similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/models.py rename to use_case_examples/cifar/cifar_brevitas_finetuning/models.py diff --git a/use_case_examples/cifar_brevitas_finetuning/requirements.txt b/use_case_examples/cifar/cifar_brevitas_finetuning/requirements.txt similarity index 100% rename from use_case_examples/cifar_brevitas_finetuning/requirements.txt rename to use_case_examples/cifar/cifar_brevitas_finetuning/requirements.txt diff --git a/use_case_examples/cifar_brevitas_training/.gitignore b/use_case_examples/cifar/cifar_brevitas_training/.gitignore similarity index 100% rename from use_case_examples/cifar_brevitas_training/.gitignore rename to use_case_examples/cifar/cifar_brevitas_training/.gitignore diff --git a/use_case_examples/cifar_brevitas_training/Makefile b/use_case_examples/cifar/cifar_brevitas_training/Makefile similarity index 100% rename from use_case_examples/cifar_brevitas_training/Makefile rename to use_case_examples/cifar/cifar_brevitas_training/Makefile diff --git a/use_case_examples/cifar_brevitas_training/README.md b/use_case_examples/cifar/cifar_brevitas_training/README.md similarity index 100% rename from use_case_examples/cifar_brevitas_training/README.md rename to use_case_examples/cifar/cifar_brevitas_training/README.md diff --git a/use_case_examples/cifar_brevitas_training/bnn_pynq_train.py b/use_case_examples/cifar/cifar_brevitas_training/bnn_pynq_train.py similarity index 100% rename from use_case_examples/cifar_brevitas_training/bnn_pynq_train.py rename to use_case_examples/cifar/cifar_brevitas_training/bnn_pynq_train.py diff --git a/use_case_examples/cifar_brevitas_training/evaluate_one_example_fhe.py b/use_case_examples/cifar/cifar_brevitas_training/evaluate_one_example_fhe.py similarity index 100% rename from use_case_examples/cifar_brevitas_training/evaluate_one_example_fhe.py rename to use_case_examples/cifar/cifar_brevitas_training/evaluate_one_example_fhe.py diff --git a/use_case_examples/cifar_brevitas_training/evaluate_torch_cml.py b/use_case_examples/cifar/cifar_brevitas_training/evaluate_torch_cml.py similarity index 100% rename from use_case_examples/cifar_brevitas_training/evaluate_torch_cml.py rename to use_case_examples/cifar/cifar_brevitas_training/evaluate_torch_cml.py diff --git a/use_case_examples/cifar_brevitas_training/experiments/CNV_2W2A_2W2A_20221114_131345/checkpoints/best.tar b/use_case_examples/cifar/cifar_brevitas_training/experiments/CNV_2W2A_2W2A_20221114_131345/checkpoints/best.tar similarity index 100% rename from use_case_examples/cifar_brevitas_training/experiments/CNV_2W2A_2W2A_20221114_131345/checkpoints/best.tar rename to use_case_examples/cifar/cifar_brevitas_training/experiments/CNV_2W2A_2W2A_20221114_131345/checkpoints/best.tar diff --git a/use_case_examples/cifar_brevitas_training/experiments/CNV_2W2A_2W2A_20221114_131345/checkpoints/checkpoint.tar b/use_case_examples/cifar/cifar_brevitas_training/experiments/CNV_2W2A_2W2A_20221114_131345/checkpoints/checkpoint.tar similarity index 100% rename from use_case_examples/cifar_brevitas_training/experiments/CNV_2W2A_2W2A_20221114_131345/checkpoints/checkpoint.tar rename to use_case_examples/cifar/cifar_brevitas_training/experiments/CNV_2W2A_2W2A_20221114_131345/checkpoints/checkpoint.tar diff --git a/use_case_examples/cifar_brevitas_training/experiments/CNV_2W2A_2W2A_20221114_131345/log.txt b/use_case_examples/cifar/cifar_brevitas_training/experiments/CNV_2W2A_2W2A_20221114_131345/log.txt similarity index 100% rename from use_case_examples/cifar_brevitas_training/experiments/CNV_2W2A_2W2A_20221114_131345/log.txt rename to use_case_examples/cifar/cifar_brevitas_training/experiments/CNV_2W2A_2W2A_20221114_131345/log.txt diff --git a/use_case_examples/cifar_brevitas_training/logger.py b/use_case_examples/cifar/cifar_brevitas_training/logger.py similarity index 100% rename from use_case_examples/cifar_brevitas_training/logger.py rename to use_case_examples/cifar/cifar_brevitas_training/logger.py diff --git a/use_case_examples/cifar_brevitas_training/models/__init__.py b/use_case_examples/cifar/cifar_brevitas_training/models/__init__.py similarity index 100% rename from use_case_examples/cifar_brevitas_training/models/__init__.py rename to use_case_examples/cifar/cifar_brevitas_training/models/__init__.py diff --git a/use_case_examples/cifar_brevitas_training/models/cnv_2w2a.ini b/use_case_examples/cifar/cifar_brevitas_training/models/cnv_2w2a.ini similarity index 100% rename from use_case_examples/cifar_brevitas_training/models/cnv_2w2a.ini rename to use_case_examples/cifar/cifar_brevitas_training/models/cnv_2w2a.ini diff --git a/use_case_examples/cifar_brevitas_training/models/common.py b/use_case_examples/cifar/cifar_brevitas_training/models/common.py similarity index 100% rename from use_case_examples/cifar_brevitas_training/models/common.py rename to use_case_examples/cifar/cifar_brevitas_training/models/common.py diff --git a/use_case_examples/cifar_brevitas_training/models/model.py b/use_case_examples/cifar/cifar_brevitas_training/models/model.py similarity index 100% rename from use_case_examples/cifar_brevitas_training/models/model.py rename to use_case_examples/cifar/cifar_brevitas_training/models/model.py diff --git a/use_case_examples/cifar_brevitas_training/models/tensor_norm.py b/use_case_examples/cifar/cifar_brevitas_training/models/tensor_norm.py similarity index 100% rename from use_case_examples/cifar_brevitas_training/models/tensor_norm.py rename to use_case_examples/cifar/cifar_brevitas_training/models/tensor_norm.py diff --git a/use_case_examples/cifar_brevitas_training/requirements.txt b/use_case_examples/cifar/cifar_brevitas_training/requirements.txt similarity index 100% rename from use_case_examples/cifar_brevitas_training/requirements.txt rename to use_case_examples/cifar/cifar_brevitas_training/requirements.txt diff --git a/use_case_examples/cifar_brevitas_training/trainer.py b/use_case_examples/cifar/cifar_brevitas_training/trainer.py similarity index 100% rename from use_case_examples/cifar_brevitas_training/trainer.py rename to use_case_examples/cifar/cifar_brevitas_training/trainer.py diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/8_bit_model.pt b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/8_bit_model.pt similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/8_bit_model.pt rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/8_bit_model.pt diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/Cifar10.ipynb b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/Cifar10.ipynb similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/Cifar10.ipynb rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/Cifar10.ipynb diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/Makefile b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/Makefile similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/Makefile rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/Makefile diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/README.md b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/README.md similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/README.md rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/README.md diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/brevitas_utils.py b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/brevitas_utils.py similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/brevitas_utils.py rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/brevitas_utils.py diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/clear_module.pt b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/clear_module.pt similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/clear_module.pt rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/clear_module.pt diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/clear_module.py b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/clear_module.py similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/clear_module.py rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/clear_module.py diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/constants.py b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/constants.py similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/constants.py rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/constants.py diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/encrypted_module.pt b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/encrypted_module.pt similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/encrypted_module.pt rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/encrypted_module.pt diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/encrypted_module.py b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/encrypted_module.py similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/encrypted_module.py rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/encrypted_module.py diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/infer_fhe.py b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/infer_fhe.py similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/infer_fhe.py rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/infer_fhe.py diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/infer_fhe_simulation.py b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/infer_fhe_simulation.py similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/infer_fhe_simulation.py rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/infer_fhe_simulation.py diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/infer_torch.py b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/infer_torch.py similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/infer_torch.py rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/infer_torch.py diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/model.py b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/model.py similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/model.py rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/model.py diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/p_error_search.py b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/p_error_search.py similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/p_error_search.py rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/p_error_search.py diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/requirements.txt b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/requirements.txt similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/requirements.txt rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/requirements.txt diff --git a/use_case_examples/cifar_brevitas_with_model_splitting/split_model.py b/use_case_examples/cifar/cifar_brevitas_with_model_splitting/split_model.py similarity index 100% rename from use_case_examples/cifar_brevitas_with_model_splitting/split_model.py rename to use_case_examples/cifar/cifar_brevitas_with_model_splitting/split_model.py